我在 Ubuntu 13.10 上运行 clockspeed-0.62 (DJB 软件)。我已经设置了时区,因此这/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 使用名为“UTC”的区域信息文件,在您的情况下,该文件/usr/share/zoneinfo/right/UTC
包含闰秒调整。
该-u
选项实际上相当于设置TZ=UTC0
. 由于有没有命名的区域信息文件UTC0
,该设置将被重新解释为“std offset”格式(例如tzset(3))。在此格式中,前三个字母仅用作可见名称,而“0” 用作与 UTC 的简单偏移量(即与系统时钟的偏移)。