我试图用来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));
打印输出:
2010/6/2下午4:37:19 2010/6/2下午3:37:19 -06:00
我在中央时区,我们目前处于夏令时。我试图让第二行读取:
2010/6/2下午4:37:19 -05:00
BaseUtcOffset
显然不会根据DST进行更改。
如何获得具有正确偏移值的正确时间?