我知道這是舊的,但希望這可以幫助別人的未來。
這裏是我反序列化XML:

看來誰生產的第三方:
<timePeriod>1982-03-31T00:00:00+11:00</t
反序列化XML我結束了30號不是31後這個XML(我正在使用)在夏令時期間將TimeZone更改爲+11,並且在不是夏令時(DST)時將其保持爲+10。
根據喬恩斯基特UTC的不應該考慮DST:https://stackoverflow.com/a/5495816/495455
還要注意文檔
Coding Best Practices Using DateTime in the .NET Framework:
XML序列總是假定被序列化DateTime值代表本地計算機的時間,所以它將機器本地時區偏移量用作編碼的XML時間的偏移量部分。當我們將其反序列化到另一臺機器上時,將從正在解析的值中減去原始偏移量,並添加當前機器的時區偏移量。
下面的代碼讓我得到格式化爲31號的日期,但它不會工作100%非Daylioght節約時間(在此飼料給出):
TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
DateTime easternTimeNow = TimeZoneInfo.ConvertTimeFromUtc(dataPoint.timePeriod, easternZone);
System.Diagnostics.Debug.WriteLine(easternTimeNow.ToString());
因此,解決方案是修復XML提要,以便它不會替代UTC與DST。
編輯:爲什麼數據搞砸了
事實證明它不是第三方供應商更改與DST的UTC。 XML提要由讀取SQL dB的Java Swing框架創建。通常我會建議保持XML標準表示形式(xsd:dateTime) - IS0 8601,但在這種情況下,使用字符串並在T工作後撕掉所有內容。免責聲明,我仍然試圖改變Feed,建議您不要在PROD中這樣做。請自擔風險!
任何人都可以給我一個關於這個問題,反之亦然的鏈接? (將.Net服務器的DateTime傳遞給JavaScript客戶端) – Siddhant 2014-06-11 06:21:28