名 前
tzfile − タ イ ム ゾ ー ン の 情 報
説 明
こ の ペ ー ジ は 、 tzset(3) で 使 用 さ れ る タ イ ム ゾ ー ン フ ァ イ ル の 構 造 に つ い て 説 明 し た も の で あ る 。 通 常 、 こ れ ら の フ ァ イ ル は デ ィ レ ク ト リ /usr/lib/zoneinfo か /usr/share/zoneinfo の ど ち ら か に 置 か れ て い る 。 タ イ ム ゾ ー ン 情 報 フ ァ イ ル は 、 タ イ ム ゾ ー ン 情 報 フ ァ イ ル で あ る こ と を 識 別 す る た め の magic 文 字 列 "TZif" で 始 ま り 、 フ ァ イ ル フ ォ ー マ ッ ト の バ ー ジ ョ ン を 示 す 文 字 (2005 年 時 点 で は ASCII NUL ('\0') か '2' の い ず れ か )、 将 来 の た め の 15 バ イ ト の 予 約 領 域 (値 は 0) が 続 き 、 long 型 の 4 バ イ ト の 値 が 6 個 続 く 。 こ の 値 は 「 標 準 」 バ イ ト オ ー ダ ー (高 位 バ イ ト が 先 に 書 か れ る ) で 記 述 さ れ る 。 こ れ ら の 値 は 、 順 に 以 下 の よ う な も の で あ る 。
tzh_ttisgmtcnt フ
ァ イ ル に 記 述
さ れ て い る UTC/local
イ ン ジ ケ ー タ
(indicator) の 個 数 。
tzh_ttisstdcnt フ ァ イ ル
に 記 述 さ れ て
い る standard/wall イ ン ジ
ケ ー タ の 個 数
。
tzh_leapcnt フ ァ イ ル に
記 述 さ れ て い
る 閏 秒 デ ー タ
の 個 数 。
tzh_timecnt フ ァ イ ル に
記 述 さ れ て い
る 「 遷 移 時 間
(transition time)」 デ ー タ
の 個 数 。
tzh_typecnt フ ァ イ ル に
記 述 さ れ て い
る 「 ロ ー カ ル
時 間 種 別 (local time
types)」 デ ー タ の 個
数 (0 で あ っ て は
い け な い )。
tzh_charcnt フ ァ イ ル に
記 述 さ れ て い
る 「 タ イ ム ゾ
ー ン 略 式 文 字
列 (timezone abbreviation string)」 の
個 数 。 上 記 の
ヘ ッ ダ ー に 続
い て 、 4 バ イ ト
の long 型 の 値 が
tzh_timecnt 個 続 く 。
こ れ ら は 昇 順
で 格 納 さ れ る
。 そ れ ぞ れ の
値 は 「 標 準 」
バ イ ト オ ー ダ
ー で 記 述 さ れ
て い る 。 そ れ
ぞ れ は 遷 移 時
間 (time(2) が 返 す 値
) と し て 用 い ら
れ 、 遷 移 時 間
に 応 じ て ロ ー
カ ル 時 間 の 計
算 ル ー ル が 変
化 す る 。 次 に
、 unsigned char 型 の 1 バ
イ ト の 値 が
tzh_timecnt 個 続 く 。
こ の 値 は 、 そ
れ ぞ れ の 遷 移
時 間 に 、 フ ァ
イ ル 中 に 記 載
さ れ て い る 「
ロ ー カ ル 時 間
」 種 別 の ど れ
が 関 連 づ け ら
れ て い る か を
示 す 。 こ れ ら
の 値 は 、 (フ ァ
イ ル 中 で こ の
情 報 の す ぐ 後
ろ に 置 か れ て
い る ) ttinifo 構 造
体 の 配 列 (要 素
数 は tzh_typecnt) に 対
す る イ ン デ ッ
ク ス と し て 機
能 す る 。 こ の
構 造 体 は 以 下
の よ う に 定 義
さ れ て い る :
struct ttinfo {
long tt_gmtoff;
int tt_isdst;
unsigned int tt_abbrind; }; そ れ ぞ
れ の 構 造 体 は
、 4 バ イ ト の long
型 の 値 tt_gmtoff、 1
バ イ ト の 値
tt_isdst, 1 バ イ ト の
値 tt_abbrind か ら 構
成 さ れ る 。 そ
れ ぞ れ の 構 造
体 に お い て 、
tt_gmtoff は UTC に 加 え
る べ き 秒 数 を
与 え 、 tt_isdst は
tm_isdst を localtime(3) に
セ ッ ト す べ き
か ど う か を 示
し 、 tt_abbrind は フ
ァ イ ル 中 で ttinfo
構 造 体 (配 列 ) の
あ と に 置 か れ
る タ イ ム ゾ ー
ン 略 式 文 字 列
の 配 列 に 対 す
る イ ン デ ッ ク
ス で あ る 。 次
に は 4 バ イ ト 値
の ペ ア が tzh_leapcnt
個 続 く 。 標 準
バ イ ト オ ー ダ
ー で 記 述 さ れ
る 。 各 ペ ア の
最 初 の 値 は (
time(2) の 返 す 形 式
で ) 閏 秒 が 起 き
る 時 刻 を 指 定
し 、 二 番 目 の
値 は そ の 時 刻
に 加 え る べ き
閏 秒 数 の 全 秒
数 を 指 定 す る
。 こ れ ら の ペ
ア は 時 刻 の 古
い 順 に 記 述 す
る 。 次 に は standard/wall
イ ン ジ ケ ー タ
が tzh_ttisstdcnt 個 置 か
れ る 。 standard/wall イ ン
ジ ケ ー タ は そ
れ ぞ れ 1 バ イ ト
の 値 と し て 格
納 さ れ る 。 こ
れ ら は 、 ロ ー
カ ル 時 間 種 別
に 関 連 付 け ら
れ た 遷 移 時 間
が 、 標 準 時 刻
(standard time) と 壁 時 計 時
刻 (wall clock time) の ど ち
ら で 指 定 さ れ
て い る か を 示
す 。 ま た 、 こ
の 値 は 、 POSIX 形 式
の タ イ ム ゾ ー
ン 環 境 変 数 の
処 理 に お い て
タ イ ム ゾ ー ン
フ ァ イ ル が 使
わ れ る 際 に も
利 用 さ れ る 。
最 後 に UTC/local イ ン
ジ ケ ー タ が
tzh_ttisgmtcnt 個 置 か れ
る 。 UTC/local イ ン ジ
ケ ー タ は そ れ
ぞ れ 1 バ イ ト の
値 と し て 格 納
さ れ る 。 こ れ
ら は 、 ロ ー カ
ル 時 間 種 別 に
関 連 付 け ら れ
た 遷 移 時 間 が UTC
と ロ ー カ ル 時
刻 の ど ち ら で
指 定 さ れ て い
る か を 示 す 。
ま た 、 こ の 値
は 、 POSIX 形 式 の タ
イ ム ゾ ー ン 環
境 変 数 の 処 理
に お い て タ イ
ム ゾ ー ン フ ァ
イ ル が 使 わ れ
る 際 に も 利 用
さ れ る 。
localtime(3) は 、 tzh_timeout が 0 で あ る か time 引 数 が フ ァ イ ル に 記 録 さ れ て い た 最 初 の 遷 移 時 刻 よ り も 小 さ い 場 合 に は 、 フ ァ イ ル に 最 初 に 現 れ る 標 準 時 刻 の ttinfo 構 造 体 を 使 う (ま た は 標 準 時 刻 の 構 造 体 が な い 場 合 は 、 単 に 最 初 の ttinfo 構 造 体 を 使 う )。 バ ー ジ ョ ン 2 形 式 の タ イ ム ゾ ー ン フ ァ イ ル で は 、 上 記 の ヘ ッ ダ ー と デ ー タ の 後 に 、 第 2 の ヘ ッ ダ ー と デ ー タ が 続 く 。 形 式 は 上 記 の ヘ ッ ダ ー と デ ー タ と 同 じ で 、 遷 移 時 間 や 閏 秒 の 時 刻 に 8 バ イ ト が 使 用 さ れ る 点 だ け が 異 な る 。 第 2 の ヘ ッ ダ ー と デ ー タ の 後 ろ に は 改 行 で 囲 ま れ た POSIX の TZ 環 境 変 数 形 式 の 文 字 列 が 置 か れ 、 こ の 文 字 列 は フ ァ イ ル 内 の 最 後 の 遷 移 時 間 の 後 で 時 刻 を 処 理 す る 際 に 使 用 さ れ る (こ の よ う な POSIX 表 現 が 置 か れ な い 場 合 、 改 行 の 間 に は 何 も 置 か れ な い )。
関 連 項 目
ctime(3), tzset(3), tzselect(8),
glibc ソ ー ス コ ー ド の timezone/tzfile.h
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。