我試圖使用DateTimeOffset在任何時區傳達特定的時間。我無法弄清楚如何使用TimeZoneInfo來處理夏令時。如何在夏令時期間使用TimeZoneInfo獲取當地時間?
var dt = DateTime.UtcNow;
Console.WriteLine(dt.ToLocalTime());
var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var utcOffset = new DateTimeOffset(dt, TimeSpan.Zero);
Console.WriteLine(utcOffset.ToOffset(tz.BaseUtcOffset));
此打印出:
6/2/2010 4:37:19 PM
6/2/2010 3:37:19 PM -06:00
我在中央時區,而我們目前在夏令時。 我想獲得第二行改爲:
6/2/2010 4:37:19 PM -05:00
BaseUtcOffset顯然不會更改基於DST。
我怎樣才能得到適當的偏移值正確的時間?
+1 - 這簡直讓我瘋狂的是TimeZoneInfo.ConvertTimeBySystemTimeZoneId不只是這個:) – 2010-06-03 04:14:13