Я использую clockspeed-0.62 (программное обеспечение DJB) на Ubuntu 13.10. У меня есть настроенные часовые пояса, так что это /usr/share/zoneinfo
ссылка на /usr/share/right
, и мой /etc/leapsecs.dat
является актуальным, т. е. содержит 25 дополнительных секунд.
Может ли кто-нибудь помочь мне понять (и решить), почему date -u
команда показывает время на 25 секунд вперед export TZ=UTC; date
?
Вывод date; (export TZ=UTC; date); date -u
:
Mon Feb 3 22:33:56 CET 2014
Mon Feb 3 21:33:56 UTC 2014
Mon Feb 3 21:34:21 UTC 2014
решение1
TZ=UTC
заставляет glibc использовать файл zoneinfo с именем «UTC», который в вашем случае /usr/share/zoneinfo/right/UTC
содержит корректировки дополнительных секунд.
Эта -u
опция фактически эквивалентна настройкеTZ=UTC0
. Поскольку естьнет файла zoneinfo с именемUTC0
, то настройка интерпретируется как имеющая формат «std offset» (как вtzset(3)). В этом формате первые три буквы используются только как видимое имя, а«0» используется как простое смещение относительно UTC(то есть смещение относительно системных часов).