371 lines
8.7 KiB
Groff
371 lines
8.7 KiB
Groff
.\" 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
|