Серверная (www.it-simple.ru)

Обновление времени в Windows XP


26 октября 2014 года будет исправлен мегакосяк наноповелителя времени. В 2 часа ночи стрелки часов будут переведены на час назад.
То есть, в России наконец-то установится нормальное для широт зимнее время, и это отлично.

В связи с этим для всех операционных систем рассылаются обновления справочника временных зон, чтобы часы продолжали нормально работать.
Вот только печаль-беда, пользователи Windows XP и 2003 (коих всё ещё богато) в пролёте, ведь к ним с апреля не приходят обновления.

Исправляем ситуацию

Вот неофициальное обновление для Windows XP и 2003:

KB_FCKMS_TZ2014_XP.reg (files/KB_FCKMS_TZ2014_XP.reg)

Использовать на свой страх и риск: скачать, запустить и разрешить слияние с реестром.

Пока — только для зоны "Волгоград, Москва, Санкт-Петербург". Список зон может дополняться по мере необходимости, в том числе и рабочими вариантами, присланными в комментариях.

Содержимое файла

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Russian Standard Time]
"Display"="(UTC+03:00) Волгоград, Москва, Санкт-Петербург"
"Dlt"="Московское время (лето)"
"Std"="Московское время (зима)"
"TZI"=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,02,00,00,00,00,00,00,00,00,00,01,00,03,00,01,00,00,00,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Russian Standard Time\Dynamic DST]
"2013"=hex:10,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"2014"=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,02,00,00,00,00,00,00,00,00,00,01,00,03,00,01,00,00,00,00,00,00,00,00,00
"2015"=hex:4c,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
"FirstEntry"=dword:000007dd
"LastEntry"=dword:000007df

Самое главное здесь — это длинные бинарные строки. Именно они задают текущие зоны и переводы стрелок. Представляют собой вот такую структуру:

typedef struct _REG_TZI_FORMAT
{
    LONG Bias;
    LONG StandardBias;
    LONG DaylightBias;
    SYSTEMTIME StandardDate;
    SYSTEMTIME DaylightDate;
} REG_TZI_FORMAT;

Вобщем, чёрт голову сломит, без поллитра не разобраться (кому надо — ищите в МСДН (http://msdn.microsoft.com)-е по ключевым словам).
Поэтому нужные значения проще всего взять из обновляемого дистрибутива виндов.

Остальное просто:
TZI — это действующие значения.
Display — название временной зоны.
Std и Dlt — соответственно названия до и после перевода стрелок.
2013, ... — состояние времени для каждого года.
FirstEntry и LastEntry — первый и последний год в описаниях, которые надо принимать в расчёт; в шестнадцатиричном виде.