C#UTC到本地时间转换意外结果

时间:2012-03-13 19:31:55

标签: c# timezone timezone-offset

从昨天开始(美国节日调整的第一天开始。)在两台不同的计算机上运行的相同代码会产生不同的结果。以下是代码:

DateTime t = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(
          DateTime.UtcNow, r.timeZone);

虽然这里使用的时区是“美国东部标准时间”

输入(DateTime.UtcNow)是2012/03/13 19:10:00

在Windows XP SP3计算机上,代码返回:2012/03/13 14:10:00

在Windows Server 2008计算机上,相同的代码返回:2012/03/13 15:10:00

这不是预期的。有什么想法吗?

最佳。

1 个答案:

答案 0 :(得分:4)

XP计算机上的当前时区为“US Eastern Standard Time”,而Server服务器上的当前时区为“US Eastern Daylight Time”。周日,美国从标准时间变为白昼时间。也许XP机器需要更新其时区信息。