我需要將UTC
日期字符串轉換爲DateTimeOffsets
。將UTC日期時間轉換爲日期時間偏移
這必須使用與計算機時區不同的時區。 E.g.當前計算機時區爲+02:00,但我想創建一個偏移量爲-4:00的DateTimeOffset。
我已經閱讀了很多關於stackoverflow的問題,但是他們沒有解決我的問題。
這就是我需要做的:
輸入: 「2012-11-20T00:00:00Z」
輸出:的DateTimeOffset有:
- 的UtcDateTime 2012-11-20 00:00
- 定義的時區的正確Utc偏移量(在此前的01:00)充足)
- LocalDateTime:二○一二年十一月二十○日01:00(= UtcDateTime +偏移)
當然夏令必須加以考慮。
編輯: 爲了使事情更加清楚,請儘量填寫下面的代碼片段:
DateTimeOffset result;
const string dateString = "2012-11-20T00:00:00Z";
var timezone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); //this timezone has an offset of +01:00:00 on this date
//do conversion here
Assert.AreEqual(result.Offset, new TimeSpan(1, 0, 0)); //the correct utc offset, in this case +01:00:00
Assert.AreEqual(result.UtcDateTime, new DateTime(2012, 11, 20, 0, 0, 0)); //equals the original date
Assert.AreEqual(result.LocalDateTime, new DateTime(2012, 11, 20, 1, 0, 0));
謝謝,這似乎工作正常! – Fabian