Обращение разработчика программы к пользователям из России (версия 2014 года)
Дорогие пользователи, хочу донести до вашего сведения информацию о возможной проблеме с переводом стрелок часов, которая связана с переходом на постоянное зимнее время в большинстве регионов России. Если эта проблема вас не коснулась, просто закройте этот диалог и программа вас больше не будет беспокоить.
26 октября 2014 года большинство регионов России перешло на постоянное зимнее время. Стрелки часов были переведены на один час назад. К примеру, в Москве стало GMT+3 вместо GMT+4. Есть исключения, подробную информацию вы всегда можете найти в Интернете.
Существует вероятность что на вашем устройстве время не перевелось автоматически, следуя устаревшим правилам часовых поясов (летнее время). Прошу иметь в виду что с настройками по умолчанию программа ClockSync за перевод часов не отвечает. Переводом часового пояса на зимнее/летнее время занимается сама операционная система устройства, для этого система использует встроенные правила, согласно которым, в нужный момент осуществляется перевод стрелок в соответствии с выбранным часовым поясом (или не осуществляется, если он не предусмотрен для этого часового пояса).
К сожалению, на многих устройствах база данных с правилами перевода обновляется только вместе с системой и могла устареть. Ваша версия Android может не знать о переходе на зимнее время. Производители телефонов могли не успеть выпустить обновление прошивки, которое позволило бы устранить проблему заранее. Протокол NTP, применяемый для синхронизации времени, не учитывает часовые пояса и не может их скорректировать автоматически.
Я прекрасно понимаю что рядовой пользователь телефона или планшета не обязан знать о таких технических тонкостях, но я считаю нужным объяснить возникшую ситуацию, чтобы вы поняли истинную причину и не винили в опоздании на работу мою программу.
Способы решения проблемы
Прежде всего, убедитесь что у вас отключена опция автоматического определения времени в системных настройках Даты и Времени, иначе система может перезаписывать правильные значения, выставленные ClockSync, и вы снова получите неверное время и часовой пояс. Кроме того, известны другие приложения, меняющие часовой пояс, например, навигационная программа Навител (для нее можно найти отдельное обновление часовых поясов, либо отключить эту опцию).
Итак, вот что можно сделать чтобы решить проблему с некорректным переводом часов в вашем Android устройстве (используйте один из вариантов ниже):
Зайти в системные настройки даты и времени, выставить часовой пояс, в котором действует правильное смещение в часах для вашего региона согласно текущей версии информации о часовых поясах в системе (даже если она устарела). Например, для Москвы, где по мнению телефона сейчас +4 часа, можно выставить часовой пояс где +3 часа. Это самый простой и самый надежный метод, совместимый со всеми приложениями, используйте его, если другие не работают.
В настройках ClockSync включить опцию "Автономная база", загрузить и установить приложение с данными из Play Store, затем выбрать нужный часовой пояс из предложенного списка. Отличие от предыдущего варианта в том, что если в выбранном часовом поясе действуют переходы на зимнее/летнее время, то ClockSync будет автоматически переводить время в нужный момент. Загруженная база скорее всего будет новее той, что используется системой, поэтому у вас должны исчезнуть проблемы с неправильным смещением или переводом стрелок часов. Кроме того, эта база предоставляет больший выбор часовых поясов.
В настройках ClockSync включить опцию "Определять часовой пояс", выбрать провайдера, включить опцию "Смещение из базы". В данном случае системный часовой пояс будет установлен автоматически, а смещение будет взято из актуальной базы (устанавливается отдельно при первом использовании).
В настройках ClockSync включить опцию "Переопределить пояс", затем выбрать нужное смещение в часах относительно UTC (+03:00 для Москвы). В данном случае системный часовой пояс принудительно устанавливается в пояс с заданным смещением, например GMT+03:00 (без автоматического перевода системой на зимнее/летнее время).
Самым радикальным решением является обновление системных данных о смене поясов на последнюю версию, для этого в опциях ClockSync есть ссылка на программу TimeZone Fixer. Эта программа требует root, кроме того, ваше устройство должно иметь возможность записи в системный раздел (S-OFF на устройствах HTC). Если вы хорошо понимаете все риски такого решения, воспользуйтесь этой программой, после чего ваше устройство будет показывать правильное смещение для всех регионов России. Большое спасибо разработчику (forceg) за это приложение.
Виджет времени от HTC
Виджет с перекидывающимися часами и погодой от HTC игнорирует системную настройку часового пояса, поэтому из предложенных решений для него сработает только TimeZone Fixer, который обновит системную базу часовых поясов (откуда виджет берет смещение для часового пояса). Вместо использования системной настройки виджет определяет идентификатор часового пояса по вашему местоположению или настройке города, после чего он использует системную базу часовых поясов для работы со временем. Если системная база устарела, виджет может показывать в России время на час больше. Это же относится и к другим приложениям, использующим системную базу часовых поясов напрямую.
Самая первая версия ClockSync с решением проблемы часовых поясов (1.1.5) использовала другой подход. Вместо установки правильного часового пояса с нужным смещением в системе, она подводила время вперед на необходимое количество часов. Главный минус такого подхода заключается в фактически неверном времени на устройстве (абсолютное значение в UTC). Например, 16:00 в часовом поясе GMT+3 это не то же самое что 16:00 в часовом поясе GMT+4, это 17:00 в GMT+4. Представьте приложение, записывающее время (история звонков, смс, календарь, будильник) с конвертацией в UTC. При старом подходе оно бы записало 13:00 вместо 12:00. Если это значение будет передано на другие устройства с правильным часовым поясом, то там оно будет на час больше. Именно поэтому первоначальное решение было заменено на новое, более правильное (реальная установка часового пояса с нужным смещением). Корректное время во всех приложениях намного важнее правильно отображаемого времени на одном виджете, тем более что эту проблему можно исправить через TimeZone Fixer или заменой виджета на аналог (Weather & Toggle Widgets со скином H7C).
Заключение
Если вы захотите вернуться к этому документу, то его можно найти в настройках ClockSync, в группе "Помощь", под именем "О часовых поясах". Он доступен только в том случае, если язык программы или системы русский. Он также доступен по адресу
http://bit.ly/cs-tzfix, на тот случай если вы захотите поделиться этой информацией с друзьями.