2010-06-19 90 views

回答

9

根據您的用戶信息,看起來您位於印度時區 - New Delhi區域比UTC提前5小時30分鐘。日期/時間字符串末尾的「Z」表示UTC,這是有意義的:UTC時區的6:28是11:58。

您可以使用本地DateTime並使用ToUniversalTime將其轉換爲UTC - 但如果您想獲取當前時間,則可以使用DateTime.UtcNow開始。

一旦你在UTC一個DateTime,此格式字符串會以同樣的方式對其進行格式化:

yyyy-MM-ddTHH:mm:ss.fffffff00K 

這是非常相似的往返格式,只需與額外的兩個零結束。那些硬編碼爲0,因爲DateTime沒有超過十分之一微秒的精度,而您的示例字符串已將其降至納秒。

例如:

DateTime now = DateTime.UtcNow; 
string s = now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff00K", 
         CultureInfo.InvariantCulture); 

創造這樣的事情:

2010-06-19T13:57:15.885578200Z 
+0

謝謝,我從答案XIII給出了我的想法。但你應該給予詳細解答。 – 2010-06-19 16:49:56

1

對我來說看起來像Universaltime

Grz,Kris。

+0

用什麼編輯發生了什麼?我沒有看到變化,爲什麼它需要? – XIII 2010-06-19 15:15:05

0

這看起來像一個日期時間的表示使用Round-trip ("O", "o") Format Specifier

var s = "2010-06-19T06:28:01.077148400Z"; 

var dt = DateTime.Parse(s, null, DateTimeStyles.RoundtripKind); 

Console.WriteLine(dt.ToString("o")); // prints "2010-06-19T06:28:01.0771484Z" 
+0

你看過打印結果嗎? 「2010-06-19T06:28:01.0771484Z」 - 注意缺失的兩個最後的0。 – 2010-06-19 13:59:20

+2

Skeet!你贏了!但是這一次! \ *搖動拳頭* – dtb 2010-06-19 14:00:38

0

它看起來像在round-trip format格式化UTC。

+1

不太確切:在秒數上有9位小數位,而不是7位。 – 2010-06-19 13:58:49

+0

我站好了。再次。 :) – 2010-06-19 14:21:10