处理日期闰秒

处理日期闰秒

我在 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 的简单偏移量(即与系统时钟的偏移)。

相关内容