相关疑难解决方法(0)

如何使用TimeZoneInfo在夏令时期间获取当地时间?

我正在尝试使用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进行更改.

如何使用正确的偏移值获得正确的时间?

c# timezone datetimeoffset

78
推荐指数
4
解决办法
6万
查看次数

标签 统计

c# ×1

datetimeoffset ×1

timezone ×1