C# 使用OpenNETCF.WindowsCE设置应用程序时区

C# 使用OpenNETCF.WindowsCE设置应用程序时区,c#,datetime,timezone,opennetcf,windows-mobile-6.1,C#,Datetime,Timezone,Opennetcf,Windows Mobile 6.1,我正在使用开发一个适用于Windows Mobile 6.1的应用程序,并尝试使用呼叫从我的应用程序更新Windows Mobile设备的时区 我试图设置的时区是GMT-5纽约东部时区,它遵守夏令时,但系统选择GMT-5波哥大,利马,它不遵守夏令时 为了确认我设置的时区是否正确,在设置好时区后,我打电话询问我之前设置的时区是否匹配,是否匹配。所以,我不知道这个设置内部是怎么搞砸的 我在这里发现了一个类似的问题,但没有简明的答案,而且有一个参考链接已经失效 以下是我正在使用的一些代码: var t

我正在使用开发一个适用于Windows Mobile 6.1的应用程序,并尝试使用呼叫从我的应用程序更新Windows Mobile设备的时区

我试图设置的时区是GMT-5纽约东部时区,它遵守夏令时,但系统选择GMT-5波哥大,利马,它不遵守夏令时

为了确认我设置的时区是否正确,在设置好时区后,我打电话询问我之前设置的时区是否匹配,是否匹配。所以,我不知道这个设置内部是怎么搞砸的

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

以下是我正在使用的一些代码:

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);

非常感谢您的帮助。

您的代码应该可以正常工作,但您说纽约时区遵守夏令时,因此您可能希望启用自动DST,我可以通过在注册表中设置一个键来设置该代码:

const string key = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Clock";
Registry.SetValue(key, "AutoDST", 1);
希望这有帮助,祝你好运


迪迪埃

你能链接到你找到的类似问题吗?