使用OpenNETCF.WindowsCE设置时区

本文关键字:时区 设置 WindowsCE OpenNETCF 使用 | 更新日期: 2023-09-27 18:17:34

我正在使用OpenNETCF智能设备框架开发Windows Mobile 6.1应用程序,我正在尝试使用SetTimeZoneInformation调用从我的应用程序更新Windows Mobile设备的时区。

我试图将其设置为GMT-5东部时区(纽约时区,遵守夏令时),但系统选择为GMT-5波哥大,利马(不遵守夏令时)。

为了确认我是否设置正确,在设置时区之后,我调用GetTimeZoneInformation来查看我之前设置的时区是否匹配,并且确实匹配。所以,我不知道这个设置是怎么在内部搞砸的。

我在这里发现了一个类似的问题,但是没有简明的答案,而且有一个参考链接已经死了。

下面是我使用的一些代码:

var tzc = new TimeZoneCollection();
tzc.Initialize();
var currentTz = new TimeZoneInformation();
DateTimeHelper.GetTimeZoneInformation(ref currentTz);
var tziList = tzc.Cast<TimeZoneInformation>().ToList();
var configTzi = tziList.FirstOrDefault(i => i.StandardName == "Eastern Standard Time");
if (configTzi != null)
    if (currentTz.StandardName != configTzi.StandardName)
        DateTimeHelper.SetTimeZoneInformation(configTzi);

使用OpenNETCF.WindowsCE设置时区

您的代码应该工作得很好,但是您说纽约时区遵守夏令时,所以您可能想要启用自动夏令时,我可以通过在注册表中设置一个键来设置该代码:

const string key = @"HKEY_LOCAL_MACHINE'Software'Microsoft'Clock";
Registry.SetValue(key, "AutoDST", 1);

希望这对你有帮助,致以最美好的问候

迪迪尔。