Timezone
時區:如何獲取規則
如何查看我目前的時區規則?
我發現要設置它(
tzdata
,zic
,/etc/timezone
),但不知道如何去另一個方向。(其中的文件/usr/share/zoneinfo
是二進製文件,我無法讀取它們;也許它們是用 編譯的zic
?)我如何知道是否有 TZ 規則以及有哪些 TZ 規則(例如,切換到/從 DST 切換)?
您已經知道了
zic
,它將源區域文件編譯為您在 中看到的二進製文件/usr/share/zoneinfo
。隱藏在手冊頁底部的是對 的引用zdump
,這就是您可能正在尋找的工具 (zdump - time zone dumper
)。這是法國使用的時區的一些範例輸出,顯示了 2017 年和 2018 年兩年的 DST 跳轉日期/時間。
zdump -V -c 2017,2019 Europe/Paris Europe/Paris Sun Mar 26 00:59:59 2017 UT = Sun Mar 26 01:59:59 2017 CET isdst=0 gmtoff=3600 Europe/Paris Sun Mar 26 01:00:00 2017 UT = Sun Mar 26 03:00:00 2017 CEST isdst=1 gmtoff=7200 Europe/Paris Sun Oct 29 00:59:59 2017 UT = Sun Oct 29 02:59:59 2017 CEST isdst=1 gmtoff=7200 Europe/Paris Sun Oct 29 01:00:00 2017 UT = Sun Oct 29 02:00:00 2017 CET isdst=0 gmtoff=3600 Europe/Paris Sun Mar 25 00:59:59 2018 UT = Sun Mar 25 01:59:59 2018 CET isdst=0 gmtoff=3600 Europe/Paris Sun Mar 25 01:00:00 2018 UT = Sun Mar 25 03:00:00 2018 CEST isdst=1 gmtoff=7200 Europe/Paris Sun Oct 28 00:59:59 2018 UT = Sun Oct 28 02:59:59 2018 CEST isdst=1 gmtoff=7200 Europe/Paris Sun Oct 28 01:00:00 2018 UT = Sun Oct 28 02:00:00 2018 CET isdst=0 gmtoff=3600
為您自己的時區獲取 DST 跳轉有點繁瑣,但此命令將返回 2017 年的它們。在這裡您可以看到我在英國時區,時區標籤為 BST/GMT(夏季/冬季時間):
zdump -V -c2017,2018 $(cat /etc/timezone) Europe/London Sun Mar 26 00:59:59 2017 UT = Sun Mar 26 00:59:59 2017 GMT isdst=0 gmtoff=0 Europe/London Sun Mar 26 01:00:00 2017 UT = Sun Mar 26 02:00:00 2017 BST isdst=1 gmtoff=3600 Europe/London Sun Oct 29 00:59:59 2017 UT = Sun Oct 29 01:59:59 2017 BST isdst=1 gmtoff=3600 Europe/London Sun Oct 29 01:00:00 2017 UT = Sun Oct 29 01:00:00 2017 GMT isdst=0 gmtoff=0
我不知道有一種工具可以將二進製文件反編譯
/usr/share/zoneinfo
回規則文件。您可能會發現從源規則集開始會更容易;它們很容易獲得。