.\" %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