我使用TimeZoneInfo.ConvertTime
方法将源TimeZone转换为Destination TimeZone。这对我来说很好。我想知道,如果为目的地TimeZone更改了夏令时,它将在.Net 4.0中自动处理。
以下是我用于转换的代码。
TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.Local, timeZoneInfo)
答案 0 :(得分:4)
是的,TimeZoneInfo.ConvertTime
尽可能处理夏令时。
但是,请注意,如果您使用的DateTime
具有某种“未指定”(例如,已从字符串中解析过),您的源时区可能不明确 。 (例如,如果时钟从早上2点回到凌晨1点,则那天凌晨1点30分发生两次。)DateTime.Now
应该不是问题,因为“本地”类型实际上可能是“本地和模糊时代的早期“或”本地和后来的模糊时代“。
如果您想要更多地控制转化 - 以及提供更多描述性类型 - 您可能需要查看我的Noda Time库。