.\" Original Revision: 1.7 .\" jpman %Id: zic.8,v 1.2 1997/06/16 08:24:17 yugawa Stab % .Dd .Dt ZIC 8 .Os .Sh 名称 .Nm zic .Nd タイムゾーンコンパイラ .Sh 書式 .Nm zic .Op Fl v .Op Fl d Ar directory .Op Fl l Ar localtime .Op Fl p Ar posixrules .Op Fl L Ar leapsecondfilename .Op Fl s .Op Fl y Ar command .Op Ar filename ... .Sh 解説 .Nm zic はコマンド行で指定されたファイルを読み取り、その内容に従って 時刻変換情報のファイルを作成します。 .Ar filename が .Em - だった場合、標準入力から読み込みます。 .Pp 以下のオプションがあります: .Bl -tag -width indent .It Fl d Ar directory 下記の標準ディレクトリではなく、指定されたディレクトリに時刻変換情報 ファイルを作成します。 .It Fl l Ar timezone 指定された .Ar タイムゾーン をローカルの時刻に使用します。 .Nm zic は、以下のリンク行が入力ファイルにあった場合と同様に働きます。 .sp .ti +.5i Link \fItimezone\fP localtime .It Fl p Ar timezone POSIX 形式のタイムゾーンの環境変数を扱う場合に、指定されたタイムゾーンの ルールを使用します。 .Nm は、以下のリンク行が入力ファイルにあった場合と同様に働きます。 .sp .ti +.5i Link \fItimezone\fP posixrules .It Fl L Ar leapsecondfilename 指定された名前のファイルからうるう秒の情報を読み込みます。 このオプションが指定されなかった場合、 出力ファイルにはうるう秒の情報は記録されません。 .It Fl v データファイル中の年が .Xr time 2 で表現できる年の範囲を超えていた場合、警告します。 .It Fl s 出力ファイルに記録される時刻の値を、それが符号付きと扱われるか符号なしと 扱われるかに関係なく同じ値になるように制限します。 このオプションを使用することで SVVS と互換のファイルを生成できます。 .It Fl y Ar command 年のタイプをチェックする際に、 .Em yearistype の代わりに指定された .Ar command を用います(下記参照)。 .El .Pp 入力の各行はフィールドから構成されます。 各フィールドは任意の数の空白文字により分離されます。先行する空白や、 行末の空白は無視されます。引用符で囲まれていない井桁文字 (#) から その行の末尾まではコメントとして扱われます。 空白文字や井桁文字をフィールドの一部として使用する場合は、二重引用符 (") で囲みます。 (コメントを取り除いた後の)空白行は無視されます。 空白ではない行は、ルール行、ゾーン行、リンク行の 3 種類のいずれか であるとみなされます。 .Pp ルール行は、 .nf .ti +.5i .ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u .sp Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S .sp と言う形式です。例えば、 .ti +.5i .sp Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .sp .fi となります。ルール行を構成するフィールドは以下の通りです: .Bl -tag -width indent .It NAME このルールが属するルールの(任意の)名前を指定します。 .It FROM ルールが適用される最初の年を指定します。 如何なる整数の年も指定できます。グレゴリオ歴を仮定しています。 単語 .Em minimum (あるいはその短縮形)は、整数で表せる最小の年を示します。 単語 .Em maximum (あるいはその短縮形)は、整数で表せる最大の年を示します。 ルールは、時刻の値として表す事ができない時刻を定義します。 表す事ができない時刻は無視されます。これにより、時刻の値のタイプが 異なるホスト間でルールを共用する事ができます。 .It TO ルールが適用される最後の年を指定します。 .Em minimum や .Em maximum (上記)に加え、 単語 .Em only (あるいはその短縮形) を、 .Em FROM フィールドの値を指すものとして使用することができます。 .It TYPE ルールが適用される年のタイプを指定します。 .Em TYPE が .Em \- だった場合、ルールは、 .Em FROM から .Em TO までのその年を含む全ての年に適用されます。 .Em TYPE がそれ以外だった場合、 .Nm は、コマンド .ti +.5i \fByearistype\fP \fIyear\fP \fItype\fP .br を実行して、年のタイプをチェックします。実行したコマンドの 終了ステータスが 0 だった場合は、その年が指定されたタイプであり、 終了ステータスが 1 だった場合は、その年が指定されたタイプではないと 判断します。 .It IN ルールが適用される月の名前を指定します。 月名は短縮形でも構いません。 .It ON ルールが適用される日を指定します。 指定できる形式は以下の通りです: .nf .in +.5i .sp .ta \w'Sun<=25\0\0'u 5 その月の 5 日 lastSun その月の最後の日曜日 lastMon その月の最後の月曜日 Sun>=8 8 日以降の最初の日曜日 Sun<=25 25 日以前の最後の日曜日 .fi .in -.5i .sp 曜日は短縮形でも、フルスペルでも構いません。注意: .Em ON フィールド内にスペースを含んではいけません。 .It AT ルールが適用される時刻を指定します。 指定できる形式は以下の通りです: .nf .in +.5i .sp .ta \w'1:28:13\0\0'u 2 時 2:00 時と分 15:00 24 時間形式の時刻 (正午以降について) 1:28:14 時、分、秒 .fi .in -.5i .sp これらの形式の最後に .Em w をつけると、指定した時刻がローカルの .Dq "ウォールクロック" (夏時間の適用される地域で、ローカルの標準時に、 夏時間の期間であればその修正を加えた時刻) .\" 上記の()内の記述は、wall clock では、特に日本人には .\" 理解しづらいので追加した。 .\" 2.2.2-RELEASE 対象 .\" By yugawa@orleans.rim.or.jp (Jun 16 1997) であり、 .Em s をつけると、指定した時刻がローカルの .Dq 標準時 であり、 .Em u (あるいは .Em g ないし .Em z ) をつけると、指定した時刻が世界標準時であることを示します。 これらの文字を指定していない場合は、ウォールクロックが適用されます。 .It SAVE ルールが有効な場合にローカルの標準時に加えられる量を指定します。 このフィールドの形式は .Em AT フィールドと同じです (この場合は、末尾に .Em w と .Em s を指定する事はできません)。 .It LETTER/S ルールが有効な場合にタイムゾーンの短縮形に用いられる .Dq "変化部分" (例えば、 .Dq EST や .Dq EDT の .Dq S や .Dq D ) を指定します。 このフィールドが .Em \- だった場合、変化部分はヌル (NULL) になります。 .El .Pp ゾーン行は、 .sp .nf .ti +.5i .ta \w'Zone\0\0'u +\w'Australia/Adelaide\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] .sp と言う形式です。例えば、 .sp .ti +.5i Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .sp .fi となります。ゾーン行を構成するフィールドは以下の通りです: .Bl -tag -width indent .It NAME タイムゾーンの名称です。 そのゾーンに対する時刻変換情報ファイルを作成する時の名前になります。 .It GMTOFF そのゾーンの標準時を得る時に GMT に加算される量です。 このフィールドの形式は、ルール行の .Em AT および .Em SAVE フィールドと同じです。 GMT から時刻を引く場合は、フィールドの最初にマイナスをつけます。 .It RULES/SAVE そのタイムゾーンに適用されるルールの名前、あるいは、ローカルの標準時に 加算される量を指定します。 このフィールドが .Em \- だった場合、そのタイムゾーンには常に標準時が適用されます。 .It FORMAT そのタイムゾーンで使用されるタイムゾーンの短縮形の形式を指定します。 文字列 .Em %s は、タイムゾーンの短縮形で用いられる .Dq "変化部分" を示します。 一方、 スラッシュ (/) で標準時の短縮形と夏時間の短縮形を指定する事もできます。 .It UNTIL その場所で GMT との差あるいはルールが変化する時刻を指定します。 年、月、日、時刻を用いて指定できます。 このフィールドが指定された場合、その時刻になるまでは与えられた GMT との差 およびルールからタイムゾーンの情報が生成されます。 .Pp この次の行は .Dq 継続 行でなくてはなりません。この行は最初の .Dq Zone と NAME フィールドがない点を除いてはゾーン行と同一の形式で、その前の行の .Em UNTIL フィールドで指定した時刻以降の情報を指定します。 この継続行にも .Em UNTIL フィールドを指定する事ができ、その場合は、次の行に その時刻以降の情報を指定します。 .El .Pp リンク行は、 .sp .nf .ti +.5i .ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u Link LINK-FROM LINK-TO .sp と言う形式です。例えば、 .sp .ti +.5i Link Europe/Istanbul Asia/Istanbul .sp .fi となります。 .Em LINK-FROM フィールドは、存在するゾーン行の .Em NAME フィールドのいずれかと一致していなければなりません。 .Em LINK-TO フィールドはそのゾーンに対する別名として使用されます。 .Pp 継続行以外は、入力中での行の順番に制限はありません。 .Pp うるう秒の定義ファイルの各行は以下のような形式になります: .nf .ti +.5i .ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u .sp Leap YEAR MONTH DAY HH:MM:SS CORR R/S .sp 例えば、 .ti +.5i .sp Leap 1974 Dec 31 23:59:60 + S .sp .fi となります。 .Em YEAR , .Em MONTH , .Em DAY , .Em HH:MM:SS フィールドは、うるう秒が起きる時刻を指定します。 .Em CORR フィールドは、 秒が加えられる場合は .Dq + で、秒がスキップされる場合は .Dq - となります。 .\" There's no need to document the following, since it's impossible for more .\" than one leap second to be inserted or deleted at a time. .\" The C Standard is in error in suggesting the possibility. .\" See Terry J Quinn, The BIPM and the accurate measure of time, .\" Proc IEEE 79, 7 (July 1991), 894-905. .\" or .\" .q ++ .\" if two seconds were added .\" or .\" .q -- .\" if two seconds were skipped. .Em R/S フィールドは 他のフィールドで与えられるうるう秒の時刻が GMT である場合は、 .Dq Stationary (またはその短縮形)で、 他のフィールドで与えられるうるう秒の時刻がローカルのウォールクロックである 場合は、 .Dq Rolling (またはその短縮形)となります。 .Sh 注釈 ローカル時刻が複数のタイプとなる地域では、 作成されたファイルの最初の変化時刻を正しく設定するためには、 最初の変化時刻のルールの .Em AT フィールドでローカルの標準時を使用する必要があります。 .Sh 関連ファイル .Bl -tag -width /usr/share/zoneinfo -compact /usr/share/zoneinfo 作成されたファイルが置かれる標準ディレクトリ .El .Sh 関連項目 .Sh "SEE ALSO" .Xr ctime 3 , .Xr tzfile 5 , .Xr zdump 8 .\" @(#)zic.8 7.12