时区信息和夏令时

vik*_*sse 5 .net c# timezone .net-4.0 c#-4.0

我使用TimeZoneInfo.ConvertTime方法从源时区转换为目标时区。这对我来说效果很好。我想知道,如果目标时区的夏令时已更改,.Net 4.0 中是否会自动处理它。

下面是我用于转换的代码。

TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, timeZoneInfo)
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 4

是的,TimeZoneInfo.ConvertTime尽可能处理夏令时。

但是,请注意,如果您使用DateTime带有某种“未指定”(例如从字符串解析它)的 a ,则在您的源时区中可能会不明确。(例如,如果时钟从凌晨 2 点回到凌晨 1 点,那么上午 1.30 会在这一天出现两次。)这对于 来说应该不成问题DateTime.Now,因为“本地”类型实际上可以是“本地且较早的模糊时间” ”或“当地和后来的模糊时代”。

如果您想更好地控制转换 - 以及拥有更多描述性类型 - 您可能需要查看我的Noda Time库。