2014-01-30 125 views
3

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

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

TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, timeZoneInfo) 
+0

你为什么不自己尝试一下? – MarcinJuraszek

回答

4

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

但是,请注意,如果您使用的是DateTime有一种“未指定”(例如,具有从字符串解析的话),可能是在你的源时区暧昧。 (例如,如果时钟从凌晨2点回到凌晨1点,那么上午1点30分会在当天发生两次)。DateTime.Now应该不成问题,因为“本地”类型实际上可以是“本地的”,而且较早的模棱两可时代“或”本土和后来的模棱两可的时代“。

如果您想对转换进行更多控制 - 以及具有更多描述类型,您可能需要查看我的Noda Time库。