我如何格式化TimeSpan
物體看起來像一個時區偏移量,像這樣:格式化時間跨度看起來像一個時區偏移
+0700
或
-0600
我使用GetUtcOffset得到一個偏移量,它的工作,但它返回一個TimeSpan對象。
我如何格式化TimeSpan
物體看起來像一個時區偏移量,像這樣:格式化時間跨度看起來像一個時區偏移
+0700
或
-0600
我使用GetUtcOffset得到一個偏移量,它的工作,但它返回一個TimeSpan對象。
如果你使用.NET 4.0或以上,你可以在時間跨度使用ToString
方法與hh
和mm
符(不知道它會顯示+和 - 雖然標誌):
TimeSpan span = new TimeSpan(7, 0, 0);
Console.WriteLine(span.ToString("hhmm"));
如果沒有,你可以格式化Hours
和Minutes
性能與一些條件格式始終顯示+,並沿 - 標誌:
TimeSpan span = new TimeSpan(7, 0, 0);
Console.WriteLine("{0:+00;-00}{1:00}", span.Hours, span.Minutes);
參考爲時間跨度格式的字符串:http://msdn.microsoft.com/en-gb/library/ee372287.aspx
參考爲數字格式字符串和它們的條件格式:http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
試着這麼做:
var timespan = new TimeSpan(-5,0,0); // EST
var offset = String.Format("{0}{1:00}{2:00}",(timespan.Hours >= 0 ? "+" : String.Empty),timespan.Hours,timespan.Minutes);
我添加+當數非負(負數的 - 應該是輸出)。
但是如果'TimeSpan'是負數,它將顯示結果如'-1-30'。應該使用'Math.Abs(span.Minutes)'。 – STiLeTT