Пользователь
0,0
рейтинг
24 августа 2014 в 12:22

О переводе времени 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 года.

Замечания, предложения приветствуются.

UPD Как и было обещано, патч kb2998527 выпустили.

UPD 2 Как оказалось, поддержка Dynamic DST в XP/2003 неполноценна, чтобы не случилось непредвиденного перевода стрелок часов в ночь с 6 на 7 января, надо предпринять определенные действия.
Vladimir Bazanov @bazanovv
карма
14,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (38)

  • +2
    Поскольку кое-где еще используются машины на XP, интересно: можно как-то удалить обновление для XP, которое меняло пояс для Москвы на UTC+04?
    • +2
      А весной ставить обратно? Перевод времени не вернули, просто сместили часовой пояс.
      • +2
        Там была галочка «переходить на летнее время». ее можно просто не ставить и будет всегда UTC+3
        • +1
          Так ведь эта галка как раз и исчезла при установке KB2570791. Но заморачиваться с его удалением, на мой взгляд, не стоит — просто добавьте (для московской зоны) 03-Russian Standard Time(-1).reg из архива по ссылке в посте, и всё станет как положено — 26 числа время сместится на час назад, и больше не будет никуда переходить.
    • +1
      Проще импортировать ветки реестра из обновления для 2003, которое должны выпустить.
      • +1
        Или из Win7, они принципиально отличаются только дополнительными ключами MUI_Display, MUI_Dlt, MUI_Std — которые легко удалить.
  • 0
    Тогда, в 2011, работало %WINDIR%\$NtUninstallKB2570791$\spuninst\spuninst.exe /quiet /norestart или удаление KB2570791 стандартным способом, через панель управления. Но с тех пор выпустили ещё обновлений таймзон (kb2779562, kb2904266, kb2863058 и т.п.), вероятно придется сносить все.
  • +1
    Продлеваем получение обновлений безопасности для Windows XP еще на 5 лет: habrahabr.ru/post/200260/
    • 0
      Кстати, интересно, для XP Embedded выпустят апдейт таймзоны? Обновлением безопасности его, конечно, можно назвать лишь с большой натяжкой, но оно КМК довольно критично.
      • +2
        Верное время на компьютере — параметр, относящийся к системе безопасности весьма сильно.
  • +7
    Как известно, 26 октября 2014 года в 2 часа ночи мы опять переводим время.

    Я один узнал об этом только сейчас?
    • +2
      Да давно вроде было известно… опять темнеть на час раньше будет :(
      • +1
        Это еще что, Забайкалье вообще на 2 часа переводит! У нас теперь светать будет в 4 утра, говорят…
        • 0
          У нас и так летом в Москве светало в 4, теперь будет в 3 светать.

      • 0
        Зато летом светать не в 4 а в 3 ночи.
        • 0
          и что делать в 3 утра? )
          • 0
            Это надо спросить у госдумцев.
            Раз уж они сделали летом рассвет в 3 утра за счёт более раннего заката вечером — у них был какой-то план.
            Правда непонятно почему 2 года назад у них был другой план, который теперь решили переделать.
    • +1
      Нет. Я такой же слоупок. (:
  • +1
    Microsoft запланировали выпуск обновления часовых поясов на 23 сентября: blogs.technet.com/b/dst2007/archive/2014/08/22/announcement-update-for-russian-time-zone-changes.aspx
  • +14
    Один мой приятель ветеринар работает в крупном агрохолдинге. На новость к возврату о переводе часов сказал буквально следующее. Этих депутатов, бл.., на две недели в коровник надо закрыть, чтобы они коровам объясняли, что дойка в четыре утра намного эффективней, чем в пять, а через полгода вновь, что в пять много лучше, чем в четыре.
    • +3
      А почему они в коровнике привязываются к местному времени? Доили бы по UTC безо всяких переводов, раз коровы чувствительны.
      • +10
        коров надо доить, молоко готовить к отправке на молочные заводы, фуры с заводов приходят со смещением во времени. Одно время доили в четко установленное время, но инфраструктура крупного предпрития вынуждена быть привязана к другим процессам и людям. Короче пару недель настоящий дурдом. Удои, кстати, падают процентов на 30 в первые дни. Животные очень чувствительны.
        • 0
          По моему логично в таком случае если процесс будет смещаться на 5 минут в день, либо до либо после перевода в зависимости от стороны, то можно избежать заметного стресса. Хотя, конечно, не ветеринар я, из человеческого опыта сужу.
          • +4
            Хотя, конечно, не ветеринар я, из человеческого опыта сужу.
            Вы доите людей? Налоговый инспектор?
            • +2
              Смешно :) правда.
              Я про постепенное изменения графика.
    • 0
      Если он работает в РФ, то можете его успокоить — никакого возврата к ежегодному переводу часов пока не планируется, часы переведут только один раз на час назад.

      Правда я почти уверен что тот факт, что темнеет теперь на час раньше что в декабре, что в июне, тоже никого не обрадует, и к сезонному переводу вернутся — ещё через пару лет.
  • 0
    Обновление support.microsoft.com/kb/2998527 вышло, но для Vista и Windows Server 2003 пока не выпустили.
  • 0
    Файлик с таймзонами на Яндекс-диске засаспендили по DMCA требованию Майкрософт, сейчас переписываемся. Если вдруг кому ещё надо, гуглится по Russian_tz_2014.zip.
  • 0
    Несколько другую логику я ожидал от патча. Предполагал, что переход для Москвы будет таким:
    1. Для текущей установленной временной зоны добавляется переход на зимнее время в последнее Вск октября со смещением -1:00
    2. Добавляется новая временная зона с GMT +3
    3. Ручками/скриптом после 26 числа переводим машины в новую зону.

    А так получается что 26 утром у всех XP будут «спешить» часы на один час. Это ни на что не повлияет, кроме календарей и подобного ПО.
    После этого мы ставим патч и время начинает отображаться нормально.
    Ошибаюсь?
    • 0
      1) ДО 26 числа ставим патч (и перевыбираем ту-же таймзону руками для xp/2003);
      2) 26 числа, а также 31 декабря и далее всё нормально, никто ничего не трогает, до следующих решений партии и правительства. Исключение — те регионы, где меняется и таймзона (+0 или -2), там по решению МС меняем её руками в ночь на 26, либо ставим сделанные вручную таймзоны, которые поменяют автоматом, а потом переходим на стандартные МС.
      • 0
        Увы, был неправ, для XP таки надо патч, отменяющий переход — иначе оно и в 2015 году перходит.
  • 0
    В общем-то Микрософтовский вариант так и работает. И для Windows Server 2003 этот патч — первый из двух.
    1. После установки патча мы внезапно оказваемся в Абу-даби (+4:00).
    2. Вручную переключаемся на Russia TZ2.
    RTZ2 это очень интересная временная зона. Она GMT +3, но до 26 октября мы на «летнем GMT +4» времени.
    Выглядит это так:
    image
    3. Дожидаемся декабрьского патча от Microsoft, который отменит переход на «летнее +4» время.
    • 0
      Не надо никакого декабрьского патча с отменой, ну посмотрите же наконец на Dynamic DST (в редакторе правой на таймзону — Dynamic DST). Оно именно для того и придумано, чтобы включать и выключать перевод стрелок в нужный год.
      2014
      image
      2015
      image
      • +1
        Да источники пишут что не работает Dynamic DST в XP/2003. Не работает в том плане, что Windows время по Dynamic DST переводить не будет. Но если вы будете програмно делать запрос к System.TimeZoneInfo, то информация Dynamic DST учтется.
        • 0
          Проверил, да, 26 переходит, но также и в октябре 2015 переходит. Печаль, печаль, огорчение. Был неправ.
          • +1
            Печаль больше в том что XP не выводится из работы, и патчика на нее даже символического нет. Так и придется писать грустный vbs, который добавит информацию из реестра 2003 с патчем, заодно изменит текущую зону на правильную, а в декабре повторим.
      • +1
        Декабрьский патч уже запланирован:
        support.microsoft.com/kb/2998527/en

        •Incorrect DST settings for future years on Windows Server 2003 and Windows XP Embedded
        If users install this update on Windows Server 2003 or Windows XP Embedded, their systems will continue to use the DST settings for 2014 even after the calendar year changes. This can cause the system to display the time incorrectly.

        To resolve this problem, users should install the December Cumulative Update (scheduled to be released in December, 2014) before the calendar year changes. After users install both the Russian time zone update and the December Cumulative Update, their systems will apply the correct DST settings and continue to display the correct time after the end of the 2014 calendar year.
  • 0
    Если кому ещё актуально — вышло декабрьское обновление таймзон kb3013410. Если его (или эквивалентные изменения реестра) не установить на 2003/XP, они и дальше продолжат переводить время. Причина — неполная поддержка Dynamic DST, значения в реестре есть, но для действий по переводу времени времени они не используются. Грубо говоря, переводить стрелки в каждый год по–разному научилась только Vista и выше (ядро 6.0). Конкретно в 2015 году, если ничего не предпринимать, 2003/XP с установленным kb2998527 переведут стрелки на летнее время (+1 час) в ночь с 5 на 6 января, и на зимнее (–1 час) 25 октября.

    Чтобы этого не произошло, есть простой способ — до 31 декабря с.г. снять галку перевода времени (она опять появилась после установки kb2998527), и правильный способ — установить kb3013410 (или эквивалентные ему изменения реестра). На домашнем компьютере никаких дополнительных действий не надо, сервера я бы советовал перезапустить, т.к., как выяснилось 26 октября, некоторые приложения, а так–же службы (например, IIS в Exchange) не понимают изменения таймзон до рестарта службы.

    На Windows Vista/Server 2008 и выше устанавливать kb3013410 прямо сейчас или до конца года не обязательно, они и так никуда не перейдут.

    Файлы реестра для XP тут filetea.me/t1saFWx8b3bTr6EzxCVuJ1eWg, если кому надо.

    Теоретическое обоснование:

    Windows 2003/XP и более ранние версии операционных систем Windows не поддерживают технологию Dynamic DST для собственно процедуры смены времени, хотя соответствующие значения реестра там есть (см. msdn.microsoft.com/ru–ru/library… 85).aspx Minimum supported — Windows Vista / Windows Server 2008). Это означает, что они технически не способны переводить стрелки часов по–разному в разные года. Патчем kb2998527 для России установлены следующие времена соответственно начала и конца летнего времени:
    начало — 00 часов первой среды января
    конец — 02 часа последнего воскресенья октября

    Именно так было сделано, поскольку имеющиеся механизмы DST не позволяют сделать однократный автоматический переход по–другому (я пробовал). Таким образом, в 2015 году и далее, если не предпринять мер, Windows 2003/XP переведет стрелки часов на час вперед в первую среду января (в 2015 это ночь с 5 на 6 января) и в последнее воскресенье октября (в 2015 это 25 октября).

    Чтобы перевод стрелок в Windows 2003/XP не произошел, необходимо установить обновление kb3013410 (или эквивалентную правку реестра для XP), или, в крайнем случае, снять галку «( ) Автоматический переход на летнее время и обратно». Однако, для предотвращения проблем в случае ещё одного изменения в законодательстве, я бы не рекомендовал снимать эту галку.

    Ещё раз повторюсь, ОС с ядром от 6.0, т.е. 2008/Vista, полноценно поддерживают Dynamic DST и не будут никуда переходить в 2015 и последующих годах. Однако в записи о времени перехода в старом формате, хранящиеся в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\, такие как на скриншоте ниже, будут внесены изменения. В связи с этим возможны проблемы в ПО, которое читает и использует эти значения напрямую для исчисления времени. В подразделы \Dynamic DST, определяющие перевод времени в новом формате, для России никаких изменений не вносится.

    Ссылки на Майкрософт:
    1) support.microsoft.com/kb/2998527/ru обновление, которое мы устанавливали в октябре 2014, секция «Список известных проблем»
    (…)
    Неверные параметры летнего времени для будущих лет на Windows Server 2003 и Windows XP Embedded

    Если пользователи устанавливать это обновление на Windows Server 2003 или Windows XP Embedded, их системы будет продолжать использовать параметры летнего времени для 2014 даже после изменения календарного года. Это может привести к неправильному отображению времени системы.

    Для решения этой проблемы пользователям следует установить накопительное Update(scheduled to be released in December, 2014) декабря до изменений календарного года. При установке обновления русский часовой пояс и декабря накопительных обновлений, их системы применить правильные параметры летнего времени и продолжает отображать правильное время в конце 2014 г.

    2) support.microsoft.com/kb/3013410/ru то самое декабрьское обновление, о котором сегодня идет речь. Оно заменяет kb2981580 и все выпущенные до него, в т.ч. kb2998527. Такие обновления выходят регулярно (особенно в конце года, подготавливают систему к изменениям в законодательстве различных стран, изменяющим способ перевода стрелок в следующем году), и, как правило, являются кумулятивными, т.е. заменяют предыдущие обоновления.

    Про Windows XP тут ничего не сказано, т.к. она снята с поддержки с 8 апреля 2014 года.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.