Зимнее время 26 октября 2014 года.

Согласно федеральному закону Российской Федерации от 21 июля 2014 г. N 248-ФЗ, в закон об истечении времени под номером N 107-ФЗ от 3-го июня 2011 года, были внесены изменения, в связи с которыми 26 октября 2014 года осуществляется перевод часов и устанавливаются соответствующие часовые зоны и значения времени.


Windows

Корпорация Microsoft выпустила очередное обновление KB2998527, предназначенное для учета текущих изменений в порядке исчисления времени, благодаря которому в операционные системы Windows будут внесены соответствующие изменения. Для ОС Windows XP такое обновление не выпускалось, т. к. данная ОС снята с поддержки. Однако существует неофициальный патч для этой системы основанный на KB2998527 для Windows XP Embedded от Конура.

https://help.kontur.ru/content/components/WindowsXP-KB2998527-x86-ENU.msi
https://help.kontur.ru/content/components/WindowsXP-KB2998527-x86-RUS.msi

После установки необходимый часовой пояс выставляем в ручную.

FreeBSD

Получаем расписание перевода часов на 2014 год:

zdump -v /etc/localtime | grep 2014

Если видим две строки с корректировкой часового пояса 26 октября, значит, обновление не требуется.

/etc/localtime  Sat Oct 25 19:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 YEKT isdst=0 gmtoff=21600
/etc/localtime  Sat Oct 25 20:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 YEKT isdst=0 gmtoff=18000

Если вывод пуст, или отображается более двух строк, значит необходимо обновить базу часовых поясов.

Для FreeBSD 8.4, 9.1, 9.2, 9.3 и 10.0 с ядром GENERIC используем FreeBSD Update.
Системы с модифицированным ядром обновляем из коллекции портов или из исходников.

Проверяем идентификатор ядра:

uname -i

Если видим значение отличное от GENERIC, переходим к установке из коллекции портов. В случае бинарного обновления, ядро будет заменено стандартным.
Загружаем и устанавливаем обновления:

freebsd-update fetch install

Обновляем текущий часовой пояс:

tzsetup -r

В случае успешной установки переходим к верификации.

Обновление из исходников с пересборкой мира

Способ полезен только для тех, кто обновляет систему из исходников.
Устанавливаем патч FreeBSD-EN-14:10.tzdata.
Пересобираем мир.
Обновляем текущий часовой пояс.

В случае успешной установки переходим к верификации.

Установка из коллекции портов

Обновляем коллекцию портов:

portsnap fetch extract

Устанавливаем порт zoneinfo:
cd /usr/ports/misc/zoneinfo && make install clean
Обновляем текущий часовой пояс:

tzsetup -r

В случае успешной установки переходим к верификации.

Установка базы часовых поясов вручную

Загружаем актуальную версию базы часовых поясов:

fetch ftp://ftp.iana.org/tz/tzdata-latest.tar.gz

Распаковываем архив:

mkdir tzdata 
cd tzdata
tar xzf ../tzdata-latest.tar.gz

Компилируем данные для Европы:

zic europe

Результат компиляции записывается непосредственно в папку назначения: /usr/share/zoneinfo. Проверяем, что файлы имеют текущую дату:

ls -l /usr/share/zoneinfo/Europe
ls -lt /usr/share/zoneinfo/Asia | head

Обновляем текущий часовой пояс:

tzsetup -r

XenServer

Загружаем актуальную версию базы часовых поясов:

wget ftp://ftp.iana.org/tz/tzdata-latest.tar.gz

Распаковываем архив:

mkdir tzdata 
cd tzdata
tar xzf ../tzdata-latest.tar.gz

Компилируем данные для Европы:

zic europe

Результат компиляции записывается непосредственно в папку назначения: /usr/share/zoneinfo. Проверяем, что файлы имеют текущую дату:

ls -l /usr/share/zoneinfo/Europe
ls -lt /usr/share/zoneinfo/Asia | head

Обновляем текущий часовой пояс:

tzdata-update

Верификация

Проверяем:

zdump -v /etc/localtime | grep 2014

Если видим две строки с корректировкой часового пояса 26 октября, значит, база обновлена успешно.

/etc/localtime  Sat Oct 25 19:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 YEKT isdst=0 gmtoff=21600
/etc/localtime  Sat Oct 25 20:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 YEKT isdst=0 gmtoff=18000

Часы будут переведены 26 октября в 02:00 на час назад.
Проверяем часовой пояс по состоянию на 1 ноября 2014 года:

date -j 1411010000 '+%z %Z'

Для фактического тестирования перевода часов используем команду:

date 1410260154 '+%x %X %z %Z'

Часы будут установлены на 26 октября 01:54. Обратите внимание, часовой пояс не всегда интерпретируется корректно. Если время задано в новом часовом поясе, то перевода часов не произойдет. В этом случае, используйте значение 1410260059, но ждать перевода часов придется час.
Ждем наступления двух часов и проверяем время:

date '+%x %X %z %Z'

Часовой пояс должен быть изменен. Не забудьте восстановить текущее время.
Изменения часовых поясов вступают в силу для вновь запускаемых программ, чтобы применить изменения для всех служб, требуется перезагрузка системы.

Обновление часовых поясов в PHP

PHP использует собственную базу часовых поясов, ее необходимо обновить отдельно.
Проверяем необходимость обновления базы, получаем часовой пояс на 1 ноября 2014 года, регион необходимо указать свой:

php -r 'date_default_timezone_set("Europe/Moscow"); echo "\n".date ("P",1414789200)."\n\n";'

Если видим неверный часовой пояс, приступаем к обновлению.
При установке PHP из пакета:

pkg install pecl-timezonedb

При установке PHP из портов:

cd /usr/ports/misc/pecl-timezonedb/
make install clean

Проверяем часовой пояс.
Если PHP работает в качестве модуля Apache, перезагружаем веб-сервер чтобы применить изменения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.