381 lines
9.6 KiB
Groff
381 lines
9.6 KiB
Groff
.\" %FreeBSD: src/usr.sbin/zic/zic.8,v 1.11.2.3 2000/12/27 16:23:33 ru Exp %
|
|
.\"
|
|
.\" jpman %Id: zic.8,v 1.2 1997/06/16 08:24:17 yugawa Stab %
|
|
.Dd October 29, 1997
|
|
.Dt ZIC 8
|
|
.Os
|
|
.Sh 名称
|
|
.Nm zic
|
|
.Nd タイムゾーンコンパイラ
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl Dsv
|
|
.Op Fl d Ar directory
|
|
.Op Fl g Ar group
|
|
.Op Fl L Ar leapsecondfilename
|
|
.Op Fl l Ar localtime
|
|
.Op Fl m Ar mode
|
|
.Op Fl p Ar posixrules
|
|
.Op Fl u Ar user
|
|
.Op Fl y Ar command
|
|
.Op Ar filename ...
|
|
.Sh 解説
|
|
.Nm
|
|
はコマンド行で指定されたファイルを読み取り、その内容に従って
|
|
時刻変換情報のファイルを作成します。
|
|
.Ar filename
|
|
が
|
|
.Em -
|
|
だった場合、標準入力から読み込みます。
|
|
.Pp
|
|
以下のオプションがあります:
|
|
.Bl -tag -width indent
|
|
.It Fl D
|
|
自動的にはディレクトリを作成しません。入力ファイルが出力先のファイルとして、
|
|
まだ存在していないディレクトリを指定していた場合には、デフォルトの動作では
|
|
ディレクトリの作成を試みます。
|
|
.Fl D
|
|
が指定された場合には、
|
|
.Nm
|
|
はそうせずに即座にエラーとします。
|
|
.It Fl d Ar directory
|
|
下記の標準ディレクトリではなく、指定されたディレクトリに時刻変換情報
|
|
ファイルを作成します。
|
|
.It Fl g Ar group
|
|
それぞれの出力ファイルを作成した後に、ファイルのグループオーナを指定された
|
|
.Ar group
|
|
(名前でも数字のグループ ID でも構いません)
|
|
に変更します。
|
|
.It Fl L Ar leapsecondfilename
|
|
指定された名前のファイルからうるう秒の情報を読み込みます。
|
|
このオプションが指定されなかった場合、
|
|
出力ファイルにはうるう秒の情報は記録されません。
|
|
.It Fl l Ar timezone
|
|
指定された
|
|
.Ar タイムゾーン
|
|
をローカルの時刻に使用します。
|
|
.Nm
|
|
は、以下のリンク行が入力ファイルにあった場合と同様に働きます。
|
|
.sp
|
|
.ti +.5i
|
|
.Bd -literal -offset indent
|
|
.No "Link timezone localtime
|
|
.Ed
|
|
(
|
|
.Fx
|
|
ではローカルタイムゾーンは
|
|
.Pa /usr/share/zoneinfo/localtime
|
|
でなく
|
|
.Pa /etc/localtime
|
|
で指定されるので、
|
|
このアクションは何の効果も持たないことに注意してください)。
|
|
.It Fl m Ar mode
|
|
それぞれの出力ファイルを作成した後、ファイルのアクセス権を
|
|
.Ar mode
|
|
に変更します。
|
|
モードは数字とアルファベットのどちらでも構いません (
|
|
.Xr chmod 1
|
|
参照)。
|
|
.It Fl p Ar timezone
|
|
POSIX 形式のタイムゾーンの環境変数を扱う場合に、指定されたタイムゾーンの
|
|
ルールを使用します。
|
|
.Nm
|
|
は、以下のリンク行が入力ファイルにあった場合と同様に働きます。
|
|
.Bd -literal -offset indent
|
|
.No Link timezone posixrules
|
|
.Ed
|
|
.It Fl u Ar user
|
|
それぞれの出力ファイルを作成した後に、ファイルのオーナを指定された
|
|
.Ar user
|
|
(名前でも数字のユーザ ID でも構いません)
|
|
に変更します。
|
|
.It Fl v
|
|
データファイル中の年が
|
|
.Xr time 3
|
|
で表現できる年の範囲を超えていた場合、警告します。
|
|
.It Fl s
|
|
出力ファイルに記録される時刻の値を、それが符号付きと扱われるか符号なしと
|
|
扱われるかに関係なく同じ値になるように制限します。
|
|
このオプションを使用することで SVVS と互換のファイルを生成できます。
|
|
.It Fl y Ar command
|
|
年のタイプをチェックする際に、
|
|
.Em yearistype
|
|
の代わりに指定された
|
|
.Ar command
|
|
を用います(下記参照)。
|
|
.El
|
|
.Pp
|
|
入力の各行はフィールドから構成されます。
|
|
各フィールドは任意の数の空白文字により分離されます。先行する空白や、
|
|
行末の空白は無視されます。引用符で囲まれていない井桁文字 (#) から
|
|
その行の末尾まではコメントとして扱われます。
|
|
空白文字や井桁文字をフィールドの一部として使用する場合は、二重引用符
|
|
(") で囲みます。
|
|
(コメントを取り除いた後の)空白行は無視されます。
|
|
空白ではない行は、ルール行、ゾーン行、リンク行の 3 種類のいずれか
|
|
であるとみなされます。
|
|
.Pp
|
|
ルール行は、
|
|
.Dl "Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S"
|
|
と言う形式です。例えば、
|
|
.Dl "Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D"
|
|
.Pp
|
|
となります。ルール行を構成するフィールドは以下の通りです:
|
|
.Bl -tag -width "LETTER/S" -offset 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
|
|
は、コマンド
|
|
.Li yearistype Ar year Ar type
|
|
を実行して、年のタイプをチェックします。実行したコマンドの
|
|
終了ステータスが 0 だった場合は、その年が指定されたタイプであり、
|
|
終了ステータスが 1 だった場合は、その年が指定されたタイプではないと
|
|
判断します。
|
|
.It IN
|
|
ルールが適用される月の名前を指定します。
|
|
月名は短縮形でも構いません。
|
|
.It ON
|
|
ルールが適用される日を指定します。
|
|
指定できる形式は以下の通りです:
|
|
.Pp
|
|
.Bl -tag -width lastSun -compact -offset indent
|
|
.It \&5
|
|
その月の 5 日
|
|
.It lastSun
|
|
その月の最後の日曜日
|
|
.It lastMon
|
|
その月の最後の月曜日
|
|
.It Sun>=8
|
|
8 日以降の最初の日曜日
|
|
.It Sun<=25
|
|
25 日以前の最後の日曜日
|
|
.El
|
|
.Pp
|
|
曜日は短縮形でも、フルスペルでも構いません。注意:
|
|
.Em ON
|
|
フィールド内にスペースを含んではいけません。
|
|
.It AT
|
|
ルールが適用される時刻を指定します。
|
|
指定できる形式は以下の通りです:
|
|
.Pp
|
|
.Bl -tag -width "\&1:28:14" -offset indent -compact
|
|
.It 2
|
|
時
|
|
.It 2:00
|
|
時と分
|
|
.It 15:00
|
|
24 時間形式の時刻 (正午以降について)
|
|
.It 1:28:14
|
|
時、分、秒
|
|
.El
|
|
.Pp
|
|
ここで、0 時は一日の始まりの深夜を意味し、
|
|
24時は一日の終わりの深夜を意味します。
|
|
これらの形式の最後に
|
|
.Sq Li w
|
|
をつけると、指定した時刻がローカルの
|
|
.Dq "ウォールクロック"
|
|
(夏時間の適用される地域で、ローカルの標準時に、
|
|
夏時間の期間であればその修正を加えた時刻)
|
|
.\" 上記の()内の記述は、wall clock では、特に日本人には
|
|
.\" 理解しづらいので追加した。
|
|
.\" 2.2.2-RELEASE 対象
|
|
.\" By yugawa@orleans.rim.or.jp (Jun 16 1997)
|
|
であり、
|
|
.Sq Li s
|
|
をつけると、指定した時刻がローカルの
|
|
.Dq 標準時
|
|
であり、
|
|
.Sq Li u
|
|
(あるいは
|
|
.Sq Li g
|
|
ないし
|
|
.Sq Li z )
|
|
をつけると、指定した時刻が世界標準時であることを示します。
|
|
これらの文字を指定していない場合は、ウォールクロックが適用されます。
|
|
.It SAVE
|
|
ルールが有効な場合にローカルの標準時に加えられる量を指定します。
|
|
このフィールドの形式は
|
|
.Em AT
|
|
フィールドと同じです
|
|
(この場合は、末尾に
|
|
.Sq Li w
|
|
と
|
|
.Sq Li s
|
|
を指定する事はできません)。
|
|
.It LETTER/S
|
|
ルールが有効な場合にタイムゾーンの短縮形に用いられる
|
|
.Dq "変化部分"
|
|
(例えば、
|
|
.Dq EST
|
|
や
|
|
.Dq EDT
|
|
の
|
|
.Dq S
|
|
や
|
|
.Dq D
|
|
)
|
|
を指定します。
|
|
このフィールドが
|
|
.Em \-
|
|
だった場合、変化部分はヌル (NULL) になります。
|
|
.El
|
|
.Pp
|
|
ゾーン行は、
|
|
.Dl "Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]"
|
|
と言う形式です。例えば、
|
|
.Dl "Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00"
|
|
となります。ゾーン行を構成するフィールドは以下の通りです:
|
|
.Bl -tag -width indent
|
|
.It NAME
|
|
タイムゾーンの名称です。
|
|
そのゾーンに対する時刻変換情報ファイルを作成する時の名前になります。
|
|
.It GMTOFF
|
|
そのゾーンの標準時を得る時に UTC に加算される量です。
|
|
このフィールドの形式は、ルール行の
|
|
.Em AT
|
|
および
|
|
.Em SAVE
|
|
フィールドと同じです。
|
|
UTC から時刻を引く場合は、フィールドの最初にマイナスをつけます。
|
|
.It RULES/SAVE
|
|
そのタイムゾーンに適用されるルールの名前、あるいは、ローカルの標準時に
|
|
加算される量を指定します。
|
|
このフィールドが
|
|
.Em \-
|
|
だった場合、そのタイムゾーンには常に標準時が適用されます。
|
|
.It FORMAT
|
|
そのタイムゾーンで使用されるタイムゾーンの短縮形の形式を指定します。
|
|
文字列
|
|
.Em %s
|
|
は、タイムゾーンの短縮形で用いられる
|
|
.Dq "変化部分"
|
|
を示します。
|
|
一方、
|
|
スラッシュ (/)
|
|
で標準時の短縮形と夏時間の短縮形を指定する事もできます。
|
|
.It UNTIL
|
|
その場所で UTC との差あるいはルールが変化する時刻を指定します。
|
|
年、月、日、時刻を用いて指定できます。
|
|
このフィールドが指定された場合、その時刻になるまでは与えられた UTC との差
|
|
およびルールからタイムゾーンの情報が生成されます。
|
|
月、日、時刻はルールの IN, ON, AT カラムと同じ形式です。
|
|
続くカラムは省略可能で、
|
|
足りないカラムは最も早い可能な値がデフォルトとなります。
|
|
.Pp
|
|
この次の行は
|
|
.Dq 継続
|
|
行でなくてはなりません。この行は最初の
|
|
.Dq Zone
|
|
と NAME フィールドがない点を除いてはゾーン行と同一の形式で、その前の行の
|
|
.Em UNTIL
|
|
フィールドで指定した時刻以降の情報を指定します。
|
|
この継続行にも
|
|
.Em UNTIL
|
|
フィールドを指定する事ができ、その場合は、次の行に
|
|
その時刻以降の情報を指定します。
|
|
.El
|
|
.Pp
|
|
リンク行は、
|
|
.Dl "Link LINK-FROM LINK-TO"
|
|
と言う形式です。例えば、
|
|
.Dl "Link Europe/Istanbul Asia/Istanbul"
|
|
となります。
|
|
.Em LINK-FROM
|
|
フィールドは、存在するゾーン行の
|
|
.Em NAME
|
|
フィールドのいずれかと一致していなければなりません。
|
|
.Em LINK-TO
|
|
フィールドはそのゾーンに対する別名として使用されます。
|
|
.Pp
|
|
継続行以外は、入力中での行の順番に制限はありません。
|
|
.Pp
|
|
うるう秒の定義ファイルの各行は以下のような形式になります:
|
|
.Dl "Leap YEAR MONTH DAY HH:MM:SS CORR R/S"
|
|
例えば、
|
|
.Dl "Leap 1974 Dec 31 23:59:60 + S"
|
|
となります。
|
|
.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
|
|
フィールドは
|
|
他のフィールドで与えられるうるう秒の時刻が UTC である場合は、
|
|
.Dq Stationary
|
|
(またはその短縮形)で、
|
|
他のフィールドで与えられるうるう秒の時刻がローカルのウォールクロックである
|
|
場合は、
|
|
.Dq Rolling
|
|
(またはその短縮形)となります。
|
|
.Sh 注
|
|
ローカル時刻が複数のタイプとなる地域では、
|
|
作成されたファイルの最初の変化時刻を正しく設定するためには、
|
|
最初の変化時刻のルールの
|
|
.Em AT
|
|
フィールドでローカルの標準時を使用する必要があります。
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width /usr/share/zoneinfo -compact
|
|
.It /usr/share/zoneinfo
|
|
作成されたファイルが置かれる標準ディレクトリ
|
|
.El
|
|
.Sh 関連項目
|
|
.Xr ctime 3 ,
|
|
.Xr tzfile 5 ,
|
|
.Xr zdump 8
|
|
.\" @(#)zic.8 7.18
|