Manpages

名 前

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_isdsttm_isdstlocaltime(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/ に 書 か れ て い る 。