Обработка високосных секунд с датой
Я использую 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
, Поскольку нет файла зонной информации с именем UTC0
вместо этого настройка интерпретируется как имеющая формат "смещение стандартного отклонения" (как в tzset (3)). В этом формате первые три буквы просто используются в качестве видимого имени, а "0" используется как простое смещение от UTC (то есть смещение от системных часов).