2014-11-21 132 views
0

不起作用爲什麼以下的失敗,我怎麼能解決這個問題:序列化和反序列化一個DateTime字符串在UTC

 DateTime now = DateTime.UtcNow; 
     string foo = now.ToString("O", CultureInfo.InvariantCulture); 
     DateTime bar = DateTime.ParseExact(foo, "O", CultureInfo.InvariantCulture); 
     Assert.AreEqual(now, bar); 
+0

你能解釋的'Assert.AreEqual()什麼;'方法呢? – 2014-11-21 02:38:30

回答

1

你需要返回UTC時間

DateTime bar = DateTime.ParseExact(foo, "O", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal); 

更多詳細信息,請參閱DateTimeStyles

+0

DateTimeStyles.RoundtripKind使此工作無論輸入是DateTime.UtcNow還是DateTime.Now。 – bfops 2014-11-21 03:08:45

-1

請檢查您是否可以給Kind屬性而轉換。我猜第二個日期正在轉換爲本地,而第一個日期是UTC。

+0

DateTimes是值類型,而不是引用類型。 – bfops 2014-11-21 02:40:26

+0

對不起,我完全忘了! – 2014-11-21 02:42:04