2010-06-10 141 views
5

我有一個DateTime對象。我想返回格式化爲下面這一個字符串:格式日期時間時區

星期四,2010 6月06日16:00:00 +0200

這是我到目前爲止的代碼:

DateTime.Now.ToString("ddd, dd MMMM yyyy HH:mm:ss zzz"); 

結果:

星期四,10六月2010 18時33分14秒+02:00

有沒有一種內置的方式來獲得格式化時區差異沒有:? (不知道是否有任何併發​​症,如果我這樣做)

+0

好問題(+1)。我也想知道的。我需要知道日期是在哪個時區。我們有一個Java系統,裏面有許多日期模糊 - 但我一直希望有一些東西會被內置到.net框架中來執行此操作。 – Andez 2011-06-01 08:06:44

回答

1

似乎(我搜索),沒有辦法分開操縱結果字符串。如果你使用zz,你只能得到「+02」,但是......然後你可以追加00,而不是「搜索」(正則表達式或其他),然後去掉它。 DateTimeFormatInfo允許知道h:m:s,d/m/y但不是時區的分隔符;此外,如果DateTimeFormatInfo.TimeSeparator也影響時區(即h:m),則無法搜索:由於它無法在所有區域設置上運行,因此應該搜索DateTimeFormatInfo.TimeSeparator;或zz並在最後加上00 ......現在,這些都是我的想法來幫助你。

+0

它可能是(它是http://www.worldtimezone.com/wtz014.php)...但zz只返回+04。這取決於保留正確的確切時區有多重要。如果需要正確的精確時間,則剝離:,否則可接受+/- 30分鐘的誤差 – ShinTakezou 2010-06-10 17:09:18

3

請注意,您可以使用「o」與時區具有完整的日期時間。它可以是有用的日誌的東西。

DateTime.Now.ToString("o") => 2012-08-17T17:31:19.7538909+08:00