處理帶有日期的閏秒

處理帶有日期的閏秒

我在 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 的簡單偏移(即與系統時鐘的偏移)。

相關內容