Я использую 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
TZ=UTC
заставляет glibc использовать файл zoneinfo с именем «UTC», который в вашем случае /usr/share/zoneinfo/right/UTC
содержит настройки високосной секунды.
Опция -u
фактически эквивалентна настройке TZ=UTC0
. Поскольку в отсутствует файл zoneinfo с именем UTC0
, настройка вместо этого интерпретируется как имеющая формат «std offset» (как в tzset (3) ). В этом формате первые три буквы просто используются как видимое имя, а «0» используется как простое смещение от UTC (то есть смещение от системных часов).