ZIC(8) — NEWS-OS Programmer’s Manual
名称
zic − タイムゾーンのコンパイラ
形式
zic [ −v ] [ −d directory ] [ −l localtime ] [ −L leapsecondfilename ] [ −s ] [ filename ... ]
解説
zic は、コマンド行で指定されたファイルからテキストを読み、 この入力ファイルで指定された時刻変換情報ファイルを作ります。 filename が − の場合は、標準入力から読み込みます。
次のオプションが使用できます。
−d directory
下記で示した標準ディレクトリではなく、 ここで指定したディレクトリに、時刻変換情報のファイルを作ります。
−l timezone
指定したタイムゾーンをローカルタイムとして使用します。 zic は、ファイルが次のような形式のリンク行を持っているように機能します。
Linktimezonelocaltime
−L leapsecondfilename
指定された名前のファイルから閏秒の情報を読み込みます。 このオプションが使用されない場合は、 "leapseconds" という名前のファイルから読み込みます。
−v データファイルに現われる年が time(2) の値で表せる年数の範囲を越えていた場合に、 エラーとします。
−s 出力ファイルに格納されている時刻の値を、 signed でも unsigned でも同じ値になるように制限します。 このオプションは、SVVSコンパチのファイルを生成するのに使用できます。 入力行は、いくつかのフィールドによって構成されます。 各フィールドは、空白文字によって区切られます。 入力行の前後の空白文字は、無視されます。 クォーテーションで囲まれていない単独の ‘#’ がある場合、 ‘#’ 以降のその行は、コメントと見なされます。 空白文字と ‘#’ 文字をフィールドの一部(文字)として使用する場合は、 ダブルクォート(") で囲みます。 (コメントマークの後の)ブランク行は、無視されます。 ブランク以外の行は、ルール行、ゾーン行、 リンク行のいずれかのタイプであることが必要です。
ルール行は次のような形式です。
RuleNAMEFROMTOTYPEINONATSAVELETTER/S
例 :
RuleUSA19691973−AprlastSun2:001:00D
ルール行を構成している各フィールドの内容は、
NAME このルールも一部になっているルールセットの(任意の)名前です。
FROM このルールが適用する最初の年です。
minimum という語(または別名)は、表現可能な時刻の最小値(最初の年) を意味します。 maximum という語(または別名)は、表現可能な時刻の最大値(最後の年)を意味します。
TO このルールが適用する最後の年です。
上記の minimum と maximum に加えて、 only という語(または別名)は、 FROM フィールドと同じ値を使用することができます。
TYPE このルールが適用する年の型です。
TYPE が − の場合、ルールは FROM から TO までの全ての年に適用します。 TYPE が uspres の場合は、ルールは米国大統領選挙の年に適用し、 nonpres の場合は、米国大統領選挙の年以外の年に適用します。 TYPE がそれら以外の場合、 zic は年の型を調べるために、次のコマンドを実行します。
yearistype year type
ここで終了ステータスが 0 の場合は、 その年が与えられた型のどれかであることを意味します。 終了ステータスが 1 の場合は、 その年が与えられた型のどれでもないことを意味します。
IN このルールが施行される月。 月は、別名(略名)でも構いません。
ON このルールが施行される日。 入力形式を以下に示します。
5その月の5日
lastSunその月の最後の日曜日
lastMonその月の最後の月曜日
Sun>=88日またはそれ以降の最初の日曜日
Sun<=2525日またはそれ以前の最後の日曜日
曜日は、別名(略名)でも正式名でも構いません。 ON フィールドの中ではスペースをいれないように注意してください。
AT このルールが施行される日の時刻。 入力形式を以下に示します。
2時
2:00時と分
15:0024時間表示の時刻 (午後の時刻用)
1:28:14時、分、秒
どの形式の場合も後ろに、時刻がローカルの時は w (wall clock) の文字が、ローカルを表す標準時の時は s (standard) の文字が、付きます。 w も s も無い場合は、w とみなされます。
SAVE ルール施行中に、ローカルを表す “標準時刻” に加える時間の総数です。 このフィールドは AT フィールドと同じ形式です。 (当然 w と s は、付きませんが)
LETTER/S
ルールが施行中に使用されるタイムゾーン別名の “不定部分” (例えば “EST” または “EDT” では “S” または “ D” )。
このフィールドが − の場合は、不定部分が無いことを意味します。
ゾーン行は次のような形式です。
ZoneNAMEGMTOFFRULES/SAVEFORMAT[UNTIL]
例:
ZoneAustralia/South−west9:30AusCST1987 Mar 15 2:00
ゾーン行を構成している各フィールドの内容は、以下のとおりです。
NAME タイムゾーンの名前です。 これは、ゾーン用に時刻変換情報のファイルを作成するのに使用されます。
GMTOFF
このゾーンで標準時刻を得るために、GMT に加える時間の総数です。 このフィールドはルール行の AT や SAVE フィールドと同じ形式で、時間を GMT から引くときはフィールドの前に −(マイナス)記号が付きます。
RULES/SAVE
タイムゾーンで適用されるルールの名前、 またはローカルを表す標準時刻に加える時間の総数が交互に表れます。 このフィールドが − の場合、タイムゾーンは常に標準時刻になります。
FORMAT
タイムゾーン別名の形式です。 タイムゾーン別名が置かれる “不定部分” の位置を示すのに %s の組合わせが使用されます。
UNTIL GMT オフセットまたは位置によってルールが変更する時刻です。
年、月、日、時刻 の様に指定されます。 これが指定された場合、タイムゾーン情報は指定された GMT オフセットにより 生成され、ルールは指定した時刻まで変わります。
次の行は、 “継続” 行でなければなりません。
この行は、 “zone” 文字列と名前が省略されることを除いてゾーン行と同じ形式で、 継続行は、前行で使われるファイルの、前行の UNTIL で指定した時刻で始まる情報を決定します。
継続行は、次の行がさらに継続行であることを示すために、ゾーン行のように UNTIL フィールドを含むこともあります。
リンク行は、次のような形式です。
LinkLINK-FROMLINK-TO
例:
LinkUS/EasternEST5EDT
LINK-FROM フィールドはあるゾーン行で NAME フィールドとして現われなければなりません。 LINK-TO フィールドはそのゾーンにとって交互に代わる名前として使用されます。
継続行を除く他の行は、入力でどんな順序になるか分かりません。
閏秒について記述したファイルの行は、次のような形式です。
LeapYEARMONTHDAYHH:MM:SSCORRR/S
例:
Leap1974Dec3123:59:60+S
YEAR、 MONTH、 DAY、 HH:MM:SS のフィールドは、閏秒が発生する時を示しています。 CORR フィールドは、秒を加えるときは “ +” 、スキップするときは “ −” になります。 R/S フィールドは、 他のフィールドで指定された閏秒の時刻が GMT として解釈された場合は “ Stationary” (の別名)、 ローカル時刻として解釈された場合は “ Rolling” (の別名)でなければなりません。
注意事項
ローカル時刻の2つ以上の型の領域に関して、 コンパイルされたファイルに記録された初期の変換時刻が正しいことを確認するために、 初期の時刻変換ルールにおける AT フィールドのローカルを表す標準時刻を使用することが必要な場合があります。
関連ファイル
/etc/zoneinfo作成されたファイルに対して使用される標準ディレクトリ
leapsecondsデフォルトの閏秒情報ファイル
関連事項
ctime(3), tzfile(5), chzone(8), zdump(8)
NEWS-OSRelease 4.1C