2010-06-29 111 views
8

國際字符串表示格式爲(YYYY-MM-DD HH:MM:SS±HHMM)。你將如何格式化國際格式的日期時間?

例如2010-06-10 21:21:10 -0400

基本上我遇到的問題是搞清楚如何從GMT中獲得差異。

DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123); 
String.Format("{0:yyyy-MM-dd HH:mm:ss ????}", dt); 

回答

13
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss zzz"); 

將輸出:

2010-06-29 08:25:16 -07:00 
+0

完美。謝謝。我可以刪除:非常容易。 – Aaron 2010-06-29 15:30:33

+0

@Aaron:'±HH:mm'格式,包括':',在ISO8601中是合法的。 – LukeH 2010-06-29 15:37:18

+0

它是合法的,但它不是Objective-C使用的格式。 – Aaron 2010-06-29 15:42:56

0

我認爲這是在幾小時內顯示。這-4是與GMT的區別。

哦,我明白了,對不起,誤會了這個問題。

1

我會去ISO format

而且W3C也有關於該主題的說明:Date and Time Formats

這些是國際標準。

+0

這可能會更好,但我試圖從objective-c來回傳遞日期。 – Aaron 2010-06-29 15:31:47

0

你會如何格式化國際格式的日期時間?

您可以使用custom format specifier(ISO標準日期/時間格式沒有標準格式)。

我遇到的問題是搞清楚如何從GMT獲得差異。使用DateTimeOffset的靜態方法之一,然後

解析檢查Offset屬性。

或者如果您的意思是,如何在字符串中包含偏移量:使用DateTimeOffset以及正確的時區和自定義格式說明符。

0

string isoFormat = inputDateTime.Format(「s」);