Я думаю, что лучший способ сделать это - использовать скриншотер Xcode & amp; отредактируйте некоторые элементы графического интерфейса, такие как иллюстрации или текст на ваших кнопках, чтобы люди не расстраивались, когда нажатие «кнопок» на Default.png не заставляет ваше приложение реагировать.
Можно установить в реестре. Просто установите значение HKLM \ Time \ TimeZoneInformation. Также есть функция, которую можно активировать: SetTimeZoneInformation .
Я также сталкивался с отключением одной ошибкой при изменении часовых поясов, но в eVC еще нет CF. В конце концов я решил, что это было вызвано изменением часового пояса устройства с часового пояса, который уже был в DST, на часовой пояс, который не был в DST. Оказалось, что он работал правильно в те месяцы года, когда мы были на стандартном времени, но не работал, когда мы были на летнем времени. Очень надоедливый.
В конце концов, я дважды установил часовой пояс и время. Второй раз это было (обычно) правильно.
Я столкнулся с той же ошибкой перехода на летнее время с разницей в час в Windows Mobile 5. Проблема, похоже, связана с ОС, а не с .NET, поскольку я использовал SetSystemTime
Вызов API на устройстве, передающий серверное значение DateTime.UtcNow
(которое всегда было точным и никогда не откладывалось на час). Мне так и не удалось проследить проблему дальше, потому что мы приняли решение оставить все устройства в том же часовом поясе, что и сервер. Ошибка возникала только при установке системного времени на устройстве с часовым поясом, отличным от часового пояса сервера.
Я нигде не встречал сообщений об этой проблеме, несмотря на тщательный поиск, что означает одно из следующего:
По какой-то причине CF на самом деле кэширует информацию о часовом поясе при запуске (я думаю, что и полная структура тоже). Поэтому, когда вы вносите изменения в часовой пояс, CF не знает об этих изменениях. Если вы используете API GetSystem / LocalTime, вы получите правильное время, но DateTime.Now не будет отражать эти изменения.
Я сообщил об этом еще в 2004 году .
На рабочем столе есть метод TimezoneInfo.ClearCachedInfo , но его нет в CF.