我试图使用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