我试图了解在 Windows Embedded 7 和 UTC 时间上运行的应用程序之间的区别。为此,我有以下代码:
TimeZoneInfo utcTimeZone = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
DateTime localTime = DateTime.Now;
DateTime utcTime = TimeZoneInfo.ConvertTime(localTime, TimeZoneInfo.Local, utcTimeZone);
TimeSpan utcOffset = localTime - utcTime;
这在我自己的运行 Windows 7 的开发 PC 上运行良好。但是,当我在运行 Windows Embedded 7 的设备上安装我的应用程序时,无论我将它设置为哪个时区,当我运行我的应用程序时,
- 的值
TimeZoneInfo.Local.BaseUtcOffset
始终为 00:00。 BaseUtcOffset
返回的对象中的值TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time")
也是 00:00(尽管这是意料之中的)。- 上面的
ConvertTime()
函数总是返回小于一小时的当前时间。(这并不奇怪,因为该TimeZoneInfo.Local.SupportsDaylightSavingsTime
值总是错误的。)
我应该使用另一种方式TimeZoneInfo.Local
来获取 UTC 和当前时区之间的偏移量吗?我需要在其中包括夏令时。