我正在尝试使用DateTimeOffset来传达任何时区的特定时刻.我无法弄清楚如何使用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));
Run Code Online (Sandbox Code Playgroud)
打印出:
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进行更改.
如何使用正确的偏移值获得正确的时间?