25 сентября 2014, 09:56 |
Всего месяц остался до перевода стрелок - пора подготавливаться к этому.
Для проверки готов ли сервер к зимнему времени можно использовать следующую команду:
Если всё ок - вывод будет таким:
Видим, что час ночи в Москве будет целых два раза - это и есть перевод часов. Если в системе временные зоны не обновлены, то последней строкой будет
Обновляем штатными средствами дистрибутива:
Либо универсальным методом:
Так же нужно учесть, что некоторые платформы используют свою собственную базу данных по часовым поясам.
Проверяем PHP:
Исходник, проверяющий время в java:
Зоны java обновляем либо штатными средствами дистрибутива, либо, если используется java с сайта Оракла - качаем Java Time Zone Updater Tool и запускаем
Для проверки готов ли сервер к зимнему времени можно использовать следующую команду:
linux% for i in `seq 1414269000 3600 1414280000`; do date --date="@$i"; done
freebsd% for i in `jot 4 1414269000 1414280000 3600`; do date -jf"%s" "$i"; done
Если всё ок - вывод будет таким:
Sun Oct 26 00:30:00 MSK 2014
Sun Oct 26 01:30:00 MSK 2014
Sun Oct 26 01:30:00 MSK 2014
Sun Oct 26 02:30:00 MSK 2014
Видим, что час ночи в Москве будет целых два раза - это и есть перевод часов. Если в системе временные зоны не обновлены, то последней строкой будет
Sun Oct 26 03:30:00 MSK 2014
Обновляем штатными средствами дистрибутива:
debian% aptitude update && aptitude install tzdata
centos% yum update && yum upgrade tzdata
freebsd% cd /usr/ports/misc/zoneinfo && make install clean && tzsetup
Либо универсальным методом:
% t=`mktemp -d` && cd $t && (curl http://www.iana.org/time-zones/repository/releases/tzdata2014h.tar.gz | tar xzvf -) && zic europe && cd && rm -rf $t
Так же нужно учесть, что некоторые платформы используют свою собственную базу данных по часовым поясам.
Проверяем PHP:
php -r 'for ($i=1414269000; $i<=1414280000; $i+=3600) { echo date("r", $i)."\n"; }'
Исходник, проверяющий время в java:
cat >timetest.java <<EOF
import java.util.Date;
import java.sql.Timestamp;
public class timetest {
public static void main(String[] args) {
for (long i=1414269000;i<=1414280000;i+=3600) {
Timestamp stamp = new Timestamp(i*1000);
Date date = new Date(stamp.getTime());
System.out.println(date);
}
}
}
EOF
javac -source 1.6 -target 1.6 timetest.java
java timetest
Зоны java обновляем либо штатными средствами дистрибутива, либо, если используется java с сайта Оракла - качаем Java Time Zone Updater Tool и запускаем
java -jar tzupdater-1.4.7-2014g/tzupdater.jar -u
java -jar tzupdater-1.4.7-2014g/tzupdater.jar -t
Комментарии RSS