В Украине отменен переход на зимнее время. Верховная Рада поддержала законопроект №8330 «Об изменении порядка исчисления времени на территории Украины». В связи с этими законодательными инновациями, на плечи украинских IT-шников легла производственная задача – 30 октября 2011 навсегда остаться в киевском летнем времени. Теперь этот часовой пояс в unix называется FET – Further-eastern European Time или дальневосточно-европейское время.
Время в Linux. Теория
Текущий часовой пояс в ОС Linux устанавливается файлом /etc/localtime. Этот файл представляет собой ссылку на информационный файл зоны или его копию, в большинстве дистрибутивов расположенный в каталоге /usr/share/zoneinfo. В данном каталоге размещена zoneinfo database база данных информации о зонах, или другими словами, tz database (timezone database — база данных часовых поясов) — совместно собираемая информация о мировых временных зонах. Иногда она упоминается как «база данных Олсона» (Olson database), так как была основана Артуром Дэвидом Олсоном (Arthur David Olson). Редактором и хранителем базы является Пол Эггерт (Paul Eggert). Обновления кода базы данных часовых поясов можно получить непосредственно из источника на
Как не перейти на зимнее время. Решение
Качаем обновление tzdata2011k.tar.gz от 26 сентября 2011 года, в котором присутствует информация по новым часовым поясам для Украины, в которое вошли зоны Europe/Kiev, Europe/Uzhgorod, Europe/Zaporozhye, Europe/Simferopol.
Распаковываем
mkdir tz
mv tzdata2011k.tar.gz ./tz
cd tz/
tar xzf tzdata2011k.tar.gz
Перед внесением изменений проверим переходы времени для нашей текущей зоны. Видим ежегодное расписание переходов времени зимнее/летнее вплоть до 2038 года.
zdump -v Europe/Kiev
...
Europe/Kiev Sun Mar 27 00:59:59 2011 UTC = Sun Mar 27 02:59:59 2011 EET isdst=0 gmtoff=7200
Europe/Kiev Sun Mar 27 01:00:00 2011 UTC = Sun Mar 27 04:00:00 2011 EEST isdst=1 gmtoff=10800
Europe/Kiev Sun Oct 30 00:59:59 2011 UTC = Sun Oct 30 03:59:59 2011 EEST isdst=1 gmtoff=10800
Europe/Kiev Sun Oct 30 01:00:00 2011 UTC = Sun Oct 30 03:00:00 2011 EET isdst=0 gmtoff=7200
...
Europe/Kiev Sun Oct 25 00:59:59 2015 UTC = Sun Oct 25 03:59:59 2015 EEST isdst=1 gmtoff=10800
Europe/Kiev Sun Oct 25 01:00:00 2015 UTC = Sun Oct 25 03:00:00 2015 EET isdst=0 gmtoff=7200
...
Убедимся в наличии необходимого обновления
vi europe
...
Zone Europe/Kiev 2:02:04 - LMT 1880
2:02:04 - KMT 1924 May 2 # Kiev Mean Time
2:00 - EET 1930 Jun 21
3:00 - MSK 1941 Sep 20
1:00 C-Eur CE%sT 1943 Nov 6
3:00 Russia MSK/MSD 1990
3:00 - MSK 1990 Jul 1 2:00
2:00 - EET 1992
2:00 E-Eur EE%sT 1995
2:00 EU EE%sT 2011 Mar lastSun 1:00u
3:00 - FET # Further-eastern European Time
...
На всякий случай делаем резервную копию файла с текущими настройками:
mv /etc/localtime /etc/localtime-old
Компилируем временные зоны для Европы. zic читает текстовый файл с описаниями зон и на выходе формирует файлы специфического формата. Стоит обратить внимание что без ключа -d пишет файлы временных зон сразу в /usr/share/zoneinfo, что нам и необходимо.
cat /etc/sysconfig/clock | grep ZONE
ZONE="Europe/Kiev"
После обновления проверим переходы времени для нашей текущей зоны. В последний раз переход произошел Mar 27 04:00:00 2011
zdump -v Europe/Kiev
...
Europe/Kiev Sun Mar 27 00:59:59 2011 UTC = Sun Mar 27 02:59:59 2011 FET isdst=0 gmtoff=7200
Europe/Kiev Sun Mar 27 01:00:00 2011 UTC = Sun Mar 27 04:00:00 2011 FET isdst=0 gmtoff=10800
Europe/Kiev Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 06:14:07 2038 FET isdst=0 gmtoff=10800
Europe/Kiev Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 06:14:07 2038 FET isdst=0 gmtoff=10800
Убедимся, что 30 октября 2011 года время будет «непереход» на зимнее время.
# date
Wed Sep 28 15:48:51 FET 2011
# date --date='768hours'
Sun Oct 30 15:48:58 FET 2011
PS: Всвязи с судебными процедурами, и временной недоступностью первоисточника размещаю копию tzdata2011k.tar.gz.
PS: Для тех кто уже перевел, выкладываю предыдущую версию TZ данных без изменений по Украине от 20 сентября, отмененных 18 октября 2011tzdata2011j.tar.gz
интересно, для чего вообще нашы депутаты решили так делать? никогда не видел причины для отмены перехода на другое время. теперь на компе настройки менять, на смартфоне и т.д., как будто нечем заняться.
Виктор on
3 октября 2011 13:22
Наши депутаты – просто идиоты. Вернее – обезьянки, идиоты в квадрате. Увидели, что Россия так сделала – ну и они тут же следом, «а чем мы хуже!». Только вот в России отменили переход НА ЛЕТНЕЕ ВРЕМЯ, потому как базисным является зимнее исчисление, а летнее – дополнительным. В английском так и называется – DAYLIGHT SAVING TIME, то есть «время экономии дневного света». А у наших интеллекта не осталось, потому решили тупо «сделать как они». В итоге имеем двойное извращение смысла этих переходов, ибо знание о том, кто и зачем это придумал – совершенно утеряно. Ну что же, будем, как идиоты – вставать рано утром, еще во тьме дуплиться на работу, будить своих детей и т.д.
Тут вы не правы, о чем свидетельствует новое описание временной зоны Europe/Moscow:
Zone Europe/Moscow 2:30:20 – LMT 1880
2:30 – MMT 1916 Jul 3 # Moscow Mean Time
2:30:48 Russia %s 1919 Jul 1 2:00
3:00 Russia MSK/MSD 1922 Oct
2:00 – EET 1930 Jun 21
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 Russia EE%sT 1992 Jan 19 2:00s
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
4:00 – MSK
т.е. последний переход был 2011 Mar 27 2:00. Так что изменения в законодательстве нашем и Российском равнозначны.
Сергей Владимирович on
10 октября 2011 11:47
Еще до принятия решения о переходе на сезонное время базисным было летнее. Именно первый раз в СССР часы были переведены на час назад. По зимнему времени в январе в Донецке темнеет в 15.30, что не есть хорошо. Единственно правильным решением было бы разделить Украину на реальные часовые пояса.
Сергей on
15 октября 2011 20:46
Слава Богу свершилось.Несколько десятков лет этого безобразия с переходом особенно на зимнее время.Реально просто час украденного времени .Утром когда звенит будильник уже светло.Ночь наступает в 16-00.
Абсолютно одобрям.
Свершилось, да не надолго. Уже приняли «отменить» отмену, (прошу прощения за тавтологию). А ведь оба решения приняты большинством, т.е. нашлись такие себе, как в том анекдоте про обезьяну, и умные, и красивые. Неужели изменились за три недели объективные причины для этого. Да. No comments. «И после этого эти люди будут запрещать мне ковыряться в носу»
В Debian tzdata уже есть «правильный» (с «отменой отмены»), но в репозитории testing. Так что apt-get update && apt-get -t testing install tzdata достаточно для корректного отображения времени.
Правда, сначала надо подключить репозиторий testing и правильно настроить приоритеты репозиториев – конечно, если не хотите при очередном обновлении системы поставить все пакеты из testing =) Но это уже расписывать не буду.
Оставить комментарий или два
Что это за блог?
Блог, как блог. В названии все сказано. Пишу о повседневной жизни системного администратора. Все с чем приходится сталкиваться по настройке, управлению и оптимизации. Решения по выходу из аварийных ситуаций. Обзоры новостей связанные с профессией сисадмина.
И еще, в плане disclaimer, на полноту и 100% достоверности не претендую, только свой взгляд на вещи, так сказать "IMHO".
интересно, для чего вообще нашы депутаты решили так делать? никогда не видел причины для отмены перехода на другое время. теперь на компе настройки менять, на смартфоне и т.д., как будто нечем заняться.
Наши депутаты – просто идиоты. Вернее – обезьянки, идиоты в квадрате. Увидели, что Россия так сделала – ну и они тут же следом, «а чем мы хуже!». Только вот в России отменили переход НА ЛЕТНЕЕ ВРЕМЯ, потому как базисным является зимнее исчисление, а летнее – дополнительным. В английском так и называется – DAYLIGHT SAVING TIME, то есть «время экономии дневного света». А у наших интеллекта не осталось, потому решили тупо «сделать как они». В итоге имеем двойное извращение смысла этих переходов, ибо знание о том, кто и зачем это придумал – совершенно утеряно. Ну что же, будем, как идиоты – вставать рано утром, еще во тьме дуплиться на работу, будить своих детей и т.д.
Тут вы не правы, о чем свидетельствует новое описание временной зоны Europe/Moscow:
Zone Europe/Moscow 2:30:20 – LMT 1880
2:30 – MMT 1916 Jul 3 # Moscow Mean Time
2:30:48 Russia %s 1919 Jul 1 2:00
3:00 Russia MSK/MSD 1922 Oct
2:00 – EET 1930 Jun 21
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 Russia EE%sT 1992 Jan 19 2:00s
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
4:00 – MSK
т.е. последний переход был 2011 Mar 27 2:00. Так что изменения в законодательстве нашем и Российском равнозначны.
Еще до принятия решения о переходе на сезонное время базисным было летнее. Именно первый раз в СССР часы были переведены на час назад. По зимнему времени в январе в Донецке темнеет в 15.30, что не есть хорошо. Единственно правильным решением было бы разделить Украину на реальные часовые пояса.
Слава Богу свершилось.Несколько десятков лет этого безобразия с переходом особенно на зимнее время.Реально просто час украденного времени .Утром когда звенит будильник уже светло.Ночь наступает в 16-00.
Абсолютно одобрям.
Свершилось, да не надолго. Уже приняли «отменить» отмену, (прошу прощения за тавтологию). А ведь оба решения приняты большинством, т.е. нашлись такие себе, как в том анекдоте про обезьяну, и умные, и красивые. Неужели изменились за три недели объективные причины для этого. Да. No comments. «И после этого эти люди будут запрещать мне ковыряться в носу»
В Debian tzdata уже есть «правильный» (с «отменой отмены»), но в репозитории testing. Так что apt-get update && apt-get -t testing install tzdata достаточно для корректного отображения времени.
Правда, сначала надо подключить репозиторий testing и правильно настроить приоритеты репозиториев – конечно, если не хотите при очередном обновлении системы поставить все пакеты из testing =) Но это уже расписывать не буду.