В ночь с 25 на 26 октября в РФ будет осуществлён переход на постоянное зимнее время. Астрономический полдень сдвинется с 14 до 13 часов, темнеть в декабре будет в 4 часа дня, а светать в 9 утра, в июле темнеть будет в 10 вечера, а светать в 3 ночи. Для "сов" наступает настоящий кошмар :-)Для систем, время поддержки которых не истекло параметры перевода часов уже поступили с очередным обновлением. Для устаревших систем придётся обновлять данные часовых поясов вручную. Обновления содержимого базы данных часовых поясов можно получить с сайта ftp://ftp.iana.org/tz/releases/
Для ручного обновления базы часовых поясов загружаем свежую версию архива tzdata:
mkdir tz
cd tz
wget ftp://ftp.iana.org/tz/releases/tzdata2014i.tar.gzРаспаковываем:
tar xzf tzdata2014i.tar.gzСмотрим . запланированы ли правила перевода часов:
zdump -v Asia/Yekaterinburg |grep 2014
Если команда ничего не выдала, значит в системе установлена старая база часовых поясов и её нужно обновить.Ищем нужный город в файлах asia или europe, географически положение может не совпадать, например, Екатеринбург находится в Азии, но указан в файле europe.
Компилируем часовые пояса из файла europe. Утилита zic читает текстовый файл с описаниями зон и на выходе формирует бинарные файлы специального формата и сохраняет их в директорию /usr/share/zoneinfo (изменить директорию можно флагом "-d"):
zic europe
Скомпилированные файлы параметров часовых поясов будут сохранены в файле /usr/share/zoneinfo/Asia/Yekaterinburg, который нужно скопировать в файл /etc/localtime, определяющий текущий часовой пояс:
cp /etc/localtime /etc/localtime.old
cp -f /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtimeПосле обновления в выводе zdump должно появиться правило перевода часов:
zdump -v Asia/Yekaterinburg |grep 2014
Asia/Yekaterinburg Sat Oct 25 19:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 YEKT isdst=0 gmtoff=21600
Asia/Yekaterinburg Sat Oct 25 20:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 YEKT isdst=0 gmtoff=18000При использовании PostgreSQL требуется не забыть обновить внутреннюю базу часовых поясов данной СУБД, которая расположена в директории /usr/local/pgsql/share/timezone. В PHP может использоваться собственная база часовых поясов, в этом случае требуется обновить пакет http://pecl.php.net/package/timezonedb
Дополнительно стоит обратить внимание на логику вычисления отрезков времени в биллинговых системах и прочих службах. С 2011 года, когда был отменён переход на зимнее/летнее время, успели появиться приложения, не учитывающие сдвиг на час, что чревато списанием/начислением лишнего часа и прочими неприятными эффектами, проявляющимися при запуске программ в "исчезнувший" час.
URL:
Обсуждается: http://www.opennet.me/tips/info/2861.shtml
> При использовании PostgreSQL требуется не забыть обновить внутреннюю базу
> часовых поясов данной СУБД, которая расположена в директории
> /usr/local/pgsql/share/timezoneТам внутри такой текст, так что решение неверное.
# NOTE:
# This file is NOT loaded by the PostgreSQL database. It just serves as
# a template for timezones you could need. See the `Date/Time Support'
# appendix in the PostgreSQL documentation for more information.
Такие примечания в текстовиках из share/timezonesets, это и есть шаблоны, которые нужно скомпилировать. Скомпилированные файлы лежат в share/timezone и вполне себе используются, по крайней мере в старых выпусках PostgreSQL.
после service postgre92 restart он жрет обновл. tzdata !!
#>> лежат в share/timezone и вполне себе используются, по крайней мере в старых выпусках PostgreSQL.> после service postgre92 restart он жрет обновл. tzdata !!
У постгресовского ./confifure есть ключ --with-system-tzdata=/usr/share/zoneinfo ("украдено" из пакетов PGDG для el6; см.также вывод pg_config своей сборки) . Причём по умолчанию, в отсутствие этого ключа, Pg _копирует в свой share/timezone текущий tzdata со сборочной машины.
Вы двое говорите о разных Pg, о разных бинарниках, собранных с разным значением (присутствием/отсутствием) этого ключа.
java ещё, вроде, имеет свою tzdata
Интересно, на оракле вчера скачивал тздата с индексом h, а здесь индекс i
Это прикол от iana или от oracle ?
oracle отстал от iana :)
> Для "сов" наступает настоящий кошмар :-)Почему?
Темнеет на час раньше, придётся больше времени в темноте проводить.
Это как раз ерунда, главное -- когда вставать.
> Это как раз ерунда, главное -- когда вставать.Ничего подобного, время окончания рабочего дня не сдвинулось, т.е. после окончания рабочего дня остаётся меньше светлого времени.
>> Это как раз ерунда, главное -- когда вставать.
> Ничего подобного, время окончания рабочего дня не сдвинулось,
> т.е. после окончания рабочего дня остаётся меньше светлого времени.Для умеренной "совы" по московскому светлое время после рабочего вечера бывает разве что ближе к летнему солнцестоянию...
И для Сибирских сов аналогично ;-)
Да это даже и лучше, алкашни меньше, можно погулять спокойно. Солнце глаза не засвечивает ))
Сейчас наиболее близко к астрономическому солнечному времени. Разница около 30 мин. Так что для самочувствия лучше.
можно и просто выбрать GMT+[2..11]
UTC+[2..11]GMT это с переводом на летнее - зимнее
где ты видишь правило перехода на DST в выводе :
zdump -v /usr/share/zoneinfo/Etc/GMT+3
нет там перевода, не вводи в заблуждение (linux/freebsd tested)
> можно и просто выбрать GMT+[2..11]ага, только в Москве и Питере GMT-3 :))
Quwait - +3
Abu Dhabi - +4У арабов нет перевода часов, поэтому можно на них всегда рассчитывать. :)
> В PHP может использоваться собственная база часовых поясов, в этом случае требуется обновить пакет http://pecl.php.net/package/timezonedb
Люди, какой диагноз-то?
Нам через пол-года снова этой чехардой заниматься с многомиллиардными ущербами, или эта ересь раз и навсегда врезалась в нашу жизнь?
Отриньте гос маразм, по крайней мере на то недолгое время что он ещё будет. Живите по UTC и конвертируйте где нужно
> Живите по UTCUNIX timestamp и так в UTC
> конвертируйте где нужно
И для чего тогда, по-вашему, придумали timezone db? Или вам плевать, какие смещения были в прошлом, «показываем как хотим»?
Спасибо!
На неподдерживаемой Windows XP для Москвы можно поставить часовой пояс "GMT+3" тех государств, в городах которых всегда трезвое правительство - Кувейт, Эр-Рияд, Багдад.
рият те еще адекваты, у них в 80-х был вообще свой по солнцу +6,777 минут сдвиг от ЖМТ-сетки
/etc/localtime тупо скопировать с одно сервака где всё стало на другой. Это конечно не кашерно - но работает, хавается допотомными серваками 10 летней давности. Хочется больше экшона поменять таймзон на Багдад, время не перереводится, часовой пояс совпадает.
> /etc/localtime тупо скопировать с одно сервака где всё стало на другой. Это
> конечно не кашерно - но работает, хавается допотомными серваками 10 летней
> давности. Хочется больше экшона поменять таймзон на Багдад, время не
> перереводится, часовой пояс совпадает.Когда в виндах Красноярского времени не было, ставили "Бангкок, Джакарта, Ханой", как сейчас помню )))