時區文件格式標準:https://datatracker.ietf.org/doc/html/rfc8536
1. NAME(名)
tzfile - 時區文件。(非文本文件)
2. DESCRIPTION(描述)
本頁介紹被 tzset(3) 函數使用的時區文件的結構。這些文件通常位于 /usr/lib/zoneinfo 或 /usr/share/zoneinfo 目錄下。
時區文件頭
時區文件以44字節的頭開始:
- 4字節,魔法字符串 “TZif” 將其標識為時區信息文件(本文簡稱時區文件)。
- 1字節,標識文件格式版本的單個字符:ASCII NUL(“\0”)或 “2”(0x32)。
- 15字節,全零,保留以備將來使用。
- 24字節,6個 long 類型的4字節值,按“標準”字節順序寫入(值的高字節先寫入)。這些值依次為:
① tzh_ttisgmcnt
存儲在文件中的 UTC/local 指示器的數量。
② tzh_ttisstdcnt
存儲在文件中的 standard/wall 指示器的數量。
③ tzh_leapcnt
存儲在文件中的數據的閏秒數。
④ tzh_timecnt
將數據存儲在文件中的 “transition time” 數。
⑤ tzh_typecnt
文件中存儲數據的“local time types”的數量(不得為零)。
⑥ tzh_charcnt
文件中存儲的“timezone abbreviation string ”的字符數。
上面的標題后面跟著tzh_timecnt四個字節的值,類型為long,按升序排序。這些值以“標準”字節順序寫入。每個都被用作轉換時間(如時間(2)返回的),用于計算本地時間的規則在該轉換時間改變。接下來是tzh_timecnt類型為unsigned char的單字節值;每一個都告訴文件中描述的不同類型的“本地時間”類型中的哪一個與相同的索引轉換時間相關聯。這些值用作文件中下一個出現的ttinfo結構數組(帶有tzh_typecnt條目)的索引;這些結構定義如下:
4. FILES(文件)
/usr/local/etc/zoneinfo
用于創建時區文件的標準目錄。
5. NOTES(注意事項)
對于具有兩種以上本地時間類型的地區,您可能需要在最早轉換時間規則的 AT 字段中使用本地標準時間,以確保編譯文件中記錄的最早過渡時間是正確的。
6. SEE ALSO(另請參閱)
tzfile(5) ? zdump(8)
7. COLOPHON(書籍的末頁,出版社名稱)
此頁面是Linux man-pages項目4.04版本的一部分。項目描述、bug報告以及此頁面的最新版本,可訪問 http://www.kernel.org/doc/man-pages/。