Установка часового пояса с помощью приложения с использованием OpenNETCF.WindowsCE
Я занимаюсь разработкой приложения для Windows Mobile 6.1 с использованием OpenNETCF Smart Device Framework и пытаюсь обновить часовой пояс устройства Windows Mobile из своего приложения с помощью SetTimeZoneInformation
вызов.
Часовой пояс, который я пытаюсь установить, - это GMT-5 Eastern (часовой пояс Нью-Йорка, который использует летнее время), но система выбирает GMT-5 Bogota, Lima (который не использует летнее время).
Чтобы подтвердить правильность установки, после установки часового пояса я позвонил 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);
Любая помощь будет принята с благодарностью.
1 ответ
Ваш код должен работать нормально, но вы сказали, что часовой пояс Нью-Йорка использует летнее время, поэтому вы можете включить Auto DST, который я мог бы установить, установив ключ в реестре с этим кодом:
const string key = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Clock";
Registry.SetValue(key, "AutoDST", 1);
Надеюсь, что это помогает, С наилучшими пожеланиями
Didier