В России и Украине отменен переход на зимнее время. В отличие от прошлых лет, 30 октября 2011 отныне часы переводить не нужно. Для большинства дистрибутивов новая база часовых поясов будет установлена через штатные обновления и не потребует от пользователя каких-либо действий. Для устаревших систем потребуется внесение ручных изменений.Текущий часовой пояс в Linux устанавливается файлом /etc/localtime. Этот файл представляет собой ссылку на информационный файл зоны или его копию, в большинстве дистрибутивов расположенный в каталоге /usr/share/zoneinfo. В данном каталоге размещена база данных с информацией о часовых поясах. Обновления кода базы данных часовых поясов можно получить с сайта ftp://elsie.nci.nih.gov/pub/
Для ручного обновления базы часовых поясов загружаем её последнюю версию:
wget tp://elsie.nci.nih.gov/pub/tzdata2011k.tar.gz
Распаковываем во временную директорию:
tar xzf tzdata2011k.tar.gz
Перед внесением изменений проверим переходы времени для текущей зоны. Видим ежегодное расписание переходов времени зимнее/летнее вплоть до 2038 года.
zdump -v Asia/Yekaterinburg |grep 2011
Asia/Yekaterinburg Sat Mar 26 20:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 YEKT isdst=0 gmtoff=18000
Asia/Yekaterinburg Sat Mar 26 21:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 YEKT isdst=0 gmtoff=21600
Asia/Yekaterinburg Sat Oct 30 20:59:59 2011 UTC = Sun Oct 31 02:59:59 2011 YEKST isdst=1 gmtoff=21600
Asia/Yekaterinburg Sat Oct 30 21:00:00 2011 UTC = Sun Oct 31 02:00:00 2011 YEKT
Если последних двух строк нет, значит в систем уже установлена обновленная база временных зон и больше ничего делать не нужно.
Иначе, убедимся в наличии необходимого обновления, для городов в европейской части смотрим файл europe, для азиатской части страны - asia. Разделение в этих файлах весьма условное, например, Екатеринбург относится к группе Asia, но указан в файле europe:
vi europe
ищем город для своего часового пояса:
Zone Asia/Yekaterinburg 4:02:24 - LMT 1919 Jul 15 4:00
4:00 - SVET 1930 Jun 21 # Sverdlovsk Time
5:00 Russia SVE%sT 1991 Mar 31 2:00s
4:00 Russia SVE%sT 1992 Jan 19 2:00s
5:00 Russia YEK%sT 2011 Mar 27 2:00s
6:00 - YEKT # Yekaterinburg Time
На всякий случай делаем резервную копию файла с текущими настройками:
cp /etc/localtime /tmp/localtime.old
Компилируем временные зоны из файла europe. Утилита zic читает текстовый файл с описаниями зон и на выходе формирует бинарные файлы специального формата. Стоит обратить внимание что утилита без ключа "-d" пишет файлы временных зон сразу в /usr/share/zoneinfo, что нам и необходимо .
zic europe
Создаем ссылку на обновленную временную зону
ln -sf /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtime
Проверяем установленную зону в файле
Для Fedora/RHEL/CentOS:
cat /etc/sysconfig/clock | grep ZONE
ZONE="Asia/Yekaterinburg"
или для Debian/Ubuntu:
cat /etc/timezone
Asia/Yekaterinburg
После обновления проверим переходы времени для нашей текущей зоны. В последний раз переход произошел Mar 27 04:00:00 2011
zdump -v Asia/Yekaterinburg |grep 2011
Asia/Yekaterinburg Sat Mar 26 20:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 YEKT isdst=0 gmtoff=18000
Asia/Yekaterinburg Sat Mar 26 21:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 YEKT isdst=0 gmtoff=21600
Убедимся, что 30 октября 2011 года время будет без перехода на зимнее время:
date --date='1000hours'
Сбт Ноя 12 14:36:46 YEKT 2011
URL: http://dimdim.org.ua/time2011/
Обсуждается: http://www.opennet.ru/tips/info/2630.shtml