О переводе времени 2014
Как известно, 26 октября 2014 года в 2 часа ночи мы опять переводим время. Для Windows XP по понятным причинам патча не будет, для подерживаемых ОС патч ожидается за 2 недели до даты Х. Пользователям XP и желающим проверить всё заранее посвящен этот пост.Собранные руками при помощи Tzedit (не от Microsoft, он не понимает Dynamic DST, а вот этим) таймзоны на всю Россию для Win7 и XP лежат тут.
Пока только очень предварительное тестирование, на Vista, 8, серверах не проверял (но должны подойти), да и эти проверял очень условно, мог запутаться где-то с переходами. Некоторый технологический софт 100% от них будет сломан. Весьма вероятно, где-то моё мнение о переходе и таймзонах не будет совпадать с будущим мнением Майкрософт, когда они таки выпустят патч. Для XP тогда можно будет просто импортировать часть реестра из Win7. Вся информация ниже — для желающих потестировать свой софт заранее, либо если патч так и не будет выпущен вовремя по разным причинам, и кому-то ещё будет интересна тема перевода времени среди окружающего ядерного пепла.
Желающие могут протестировать или начать собирать свои, предварительно сделав резервную копию содержимого HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones. Не забываем, что после правки данных о таймзоне в хранилище её ещё надо применить, выбрав другую зону, применив, а затем выбрав правильную, или из командной строки (Win 7 из коробки, Vista после kb2556308 — tzutil.exe /s «Russian Standard Time», для XP control.exe timedate.cpl,,/Z Russian Standard Time). Не забываем про UAC на Win 7, назначаем изменения в политиках компьютера.
Поскольку на Vista+ русские (а также на любом другом языке) названия зашиты в tzres.dll, подписанный цифровой подписью, и изменить я их не могу — чтобы не вводить в заблуждение старыми названиями, все ключи со ссылками на MUI названия удаляю. Правда, TZEdit после этого немного плохеет, с остальным проблем не замечено. Если удаление кому-то помешало — уберите все ключи вида «MUI_Display»=- «MUI_Dlt»=- «MUI_Std»=- из файла. Кроме того, не вижу смысла делать ещё один файл с английскими названиями зон для англоязычных дистрибутивов — кто чувствует некую эстетическую неправильность, пусть сделает сам.
Для понимания, что меняется и насколько, кроме общего файла есть отдельные для каждой временной зоны, в формате <новое смещение UTC>-имя зоны (изменение от старого), например, 03-Russian Standard Time (-1).reg. Для регионов, меняющих временную зону необычным образом, созданы три отдельные несуществующие до этого зоны, у всех имя начинается с восклицательного знака — !07-Kemerovo (0).reg, !08-Chita (-2).reg, !11-UTC11(-1).reg — их имеет смысл установить для автоматического перехода в ночь 26 числа, после чего заменить на стандартные для зоны и забыть как страшный сон.
Не утверждаю, что Microsoft сделает переход именно так (кому интересно — см. переходы dynamic dst в других странах, там всё достаточно очевидно), поэтому до официального патча всё на свой страх и риск. Всё, что относится к XP, соответствует и Windows Server 2003 (с точностью до языка); всё, что относится к Vista/7 — должно подходить и для Windows Server 2008/2008 R2 и старше.
Для поддержки Dynamic DST на XP должно стоять обновление таймзон 2007 года KB931836 или выше, если вы корректно перешли в 2012 году — оно у вас стоит; для Vista для наличия tzutil.exe для автоматизации установки таймзон должно стоять обновление kb2556308 — скорее всего оно у вас тоже есть.
Ссылки: Закон 2014; Закон 2011; Выжимки кто-куда; Теория Dynamic DST (в XP/2003 Dynamic DST поддерживается начиная с 2007 года и KB931836, на Win2k увы, нет); Утилита TZEdit с поддержкой Dynamic DST; Теория для разработчиков; Выбор таймзоны из командной строки; Хороший пост о смене часовых поясов 2011 года.
Замечания, предложения приветствуются.