@c ===========================================================================
@c GNU date syntax documentation
-@c Copyright (C) 1994-2006, 2009-2013 Free Software Foundation, Inc.
+@c Copyright (C) 1994-2006, 2009-2016 Free Software Foundation, Inc.
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.3 or
@c any later version published by the Free Software Foundation; with no
-@c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+@c Invariant Sections, no Front-Cover Texts, and no Back-Cover
@c Texts. A copy of the license is included in the ``GNU Free
@c Documentation License'' file as part of this distribution.
まず、引用から始める。
@quotation
-時間を計るための我々の単位は、秒から月にいたるまで、あまりにも
-複雑で、一貫性がなく、ばらばらなので、時間について間違わずに暗算
-をすることなど、ほとんど不可能なほどだ。まったくの話、どこかの
-横暴な神様が、人間の知能を時間の奴隷にしてやろうと企んだとしても
+時間を計るための我々の単位は、秒から月にいたるまで、あまりにも複雑で、一貫性がなく、ばらばらなので、
+時間について間違わずに暗算をすることなど、ほとんど不可能なほどだ。
+まったくの話、どこかの横暴な神様が、人間の知能を時間の奴隷にしてやろうと企んだとしても
--- 腐った決まりごとや不愉快な不意打ちに隷従せずに済ますことなど、
-人間にはほとんど不可能にしてやろうと企んだとしても --- 現在我々が
-使っているシステムをお下げ渡しになる以上のことは、できなかったに
-違いない。我々の時間計算のシステムは、垂直な面も水平な面もない
-台形の建築ブロックの集まりのようなものだ。あるいは、ほんの簡単な
-考えを述べるにも、凝りに凝った構成や、無駄な不変化詞や、長々しい
-婉曲表現が必要な言語のようなものだ。言語や科学のもっとうまく行って
-いる思考様式は、我々が経験に果敢に立ち向かうことを、少なくとも
-冷静に立ち向かうことを可能にしてくれる。ところが、そうしたものとは
-違って、我々の時間計算のシステムは、密かに、しかも執拗に時間に
-対する我々の恐怖をかきたてるのである。
-
-@dots{} それは、建築家が長さをフィートで、幅をメートルで、高さをエルで
-測らなければならないようなものだ。あるいは、基本的な使用説明書を
-読むのに、五つの異なった言語の知識が必要なようなものだ。だから、
-我々が、自分にとってすぐ最近の過去や未来を表す、この前の火曜日
-(last Tuesday) とか、来週の日曜日 (a week from Sunday) とかいった
-表現について、それは一体いつを指しているのだろうと考え込んでは、
-どうしようもない混乱を覚えることがよくあるのも、無理からぬこと
-なのである。@dots{}
+人間にはほとんど不可能にしてやろうと企んだとしても ---
+現在我々が使っているシステムをお下げ渡しになる以上のことは、できなかったに違いない。
+我々の時間計算のシステムは、垂直な面も水平な面もない不等辺四辺形の建築ブロックの集まりのようなものだ。
+あるいは、ほんの簡単な考えを述べるにも、
+凝りに凝った構成や、無駄な不変化詞や、長々しい婉曲表現が必要な言語のようなものだ。
+言語や科学のもっとうまく行っている思考様式は、我々が経験に果敢に立ち向かうことを、
+少なくとも冷静に立ち向かうことを可能にしてくれる。
+ところが、そうしたものとは違って、我々の時間計算のシステムは、
+密かに、しかも執拗に時間に対する我々の恐怖をかきたてるのである。
+
+@dots{} それは、建築家が長さをフィートで、幅をメートルで、高さをエルで測らなければならないようなものだ。
+あるいは、基本的な使用説明書を読むのに、五つの異なった言語の知識が必要なようなものだ。
+だから、我々が、自分にとってすぐ最近の過去や未来を表す、この前の火曜日
+(last Tuesday) とか、来週の日曜日 (a week from Sunday)
+とかいった表現について、それは一体いつを指しているのだろうと考え込んでは、
+どうしようもない混乱を覚えることがよくあるのも、無理からぬことなのである。@dots{}
--- Robert Grudin, @cite{Time and the Art of Living}.
@end quotation
-この章では、GNU のプログラムが認識する日付表現文字列について説明
-ã\81\99ã\82\8bã\80\82ã\81\9dã\81\86ã\81\97ã\81\9fæ\96\87å\97å\88\97ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\81§ã\81\82ã\82\8bèªè\80\85ã\81\8cã\80\81æ§\98ã\80\85ã\81ªã\83\97ã\83ã\82°ã\83©ã\83 ã\81«å¼\95æ\95°
-として渡すことのできるものだ。C のインターフェース (@code{parse_datetime}
-関数で使用する) については、ここでは説明しない。
+この章では、GNU のプログラムが認識する日付表現文字列について説明する。
+ã\81\9dã\81\86ã\81\97ã\81\9fæ\96\87å\97å\88\97ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\81§ã\81\82ã\82\8bèªè\80\85ã\81\8cã\80\81æ§\98ã\80\85ã\81ªã\83\97ã\83ã\82°ã\83©ã\83 ã\81«å¼\95æ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\99ã\81\93ã\81¨ã\81®ã\81§ã\81\8dã\82\8bã\82\82ã\81®ã\81 ã\80\82
+C のインターフェース (@code{parse_datetime} 関数で使用する)
+については、ここでは説明しない。
@menu
* General date syntax:: 共通規則。
@cindex items in date strings
日付 (@dfn{date}) は、空文字列のこともある文字列であり、空白 (whitespace)
で区切られた多くの項目を含んでいる。各項目の意味に曖昧さが生じないなら、
-空白は省略できる。空の文字列は、今日の始まり (すなわち、真夜中) を意味
-している。項目の順序は重要ではない。日付文字列では、様々な種類の項目を
-指定することができる。
+空白は省略できる。空の文字列は、今日の始まり (すなわち、真夜中) を意味している。
+項目の順序は重要ではない。日付文字列では、様々な種類の項目を指定することができる。
@itemize @bullet
@item 暦日の項目
@findex first @r{in date strings}
@findex next @r{in date strings}
@findex last @r{in date strings}
-何番目かを示す序数の中には、現れる場所によっては、単語で表現できる
-ものがいくつかある。これは、曜日や相対的表現の項目を指定するとき、
-たいへん便利だ (下記参照)。使用頻度のきわめて高い序数を取り上げると、
-@samp{last} という単語は @math{-1} を表し、@samp{this} は 0 を、@samp{first} と
-@samp{next} は
-両方とも 1 を表している。@samp{second} という単語は時間の単位でもあるので、
+何番目かを示す序数の中には、現れる場所によっては、単語で表現できるものがいくつかある。
+これは、曜日や相対的表現の項目を指定するとき、たいへん便利だ (下記参照)。
+使用頻度のきわめて高い序数を取り上げると、@samp{last} という単語は
+@math{-1} を表し、@samp{this} は 0 を、@samp{first} と @samp{next}
+は両方とも 1 を表している。@samp{second} という単語は時間の単位でもあるので、
序数の 2 を単語で表現する方法はない。だが、便宜を考えて、@samp{third} は
-3 を、@samp{fourth} は 4 を、@samp{fifth} は 5 を、@samp{sixth} は 6 を、@samp{seventh}
-は
-7 を、@samp{eighth} は 8 を、@samp{ninth} は 9 を、@samp{tenth} は 10
-を、@samp{eleventh} は
+3 を、@samp{fourth} は 4 を、@samp{fifth} は 5 を、@samp{sixth} は
+6 を、@samp{seventh} は 7 を、@samp{eighth} は 8 を、@samp{ninth}は
+9 を、@samp{tenth} は 10 を、@samp{eleventh} は
11 を、@samp{twelfth} は 12 を表すことになっている。
@cindex months, written-out
-月がこの形で表現されたときも、やはり数値として (訳注: たとえば、今月
-から何ヶ月後と) 指定されたと見なされるのであって、月の名前の省略なしの
-表記と解釈されるわけではない (訳注: たとえば、third month を March の
-別名の完全表記とは考えない)。そのため、March のような月名を使った場合
-とは、指定できる文字列が違ってくる。
+月がこの形で表現されたときも、やはり数値として (訳注: たとえば、今月から何ヶ月後と)
+指定されたと見なされるのであって、月の名前の省略なしの表記と解釈されるわけではない
+(訳注: たとえば、third month を March の別名の完全表記とは考えない)。
+そのため、March のような月名を使った場合とは、指定できる文字列が違ってくる。
@cindex language, in dates
現在の実装で使用できる単語は、英語の単語とその省略形のみである。
@cindex language, in dates
@cindex time zone item
-@command{date} コマンドの出力だからと言って、必ずしも日付文字列として
-プログラムに渡せるとはかぎらない。言語の問題のせいばかりではない。
-@samp{IST} のようなタイムゾーン項目には、標準的な意味が存在しないからでも
-ある。@command{date} を使用して日付文字列を生成し、それに対して後で構文解析
-を行うつもりなら、日付の書式には、言語が何であるかに依存せず、@samp{UTC} と
-@samp{Z} 以外のタイムゾーン項目を使用しないものを指定するべきだ。それを行う
-方法をいくつか挙げておく。
+@command{date} コマンドの出力だからと言って、必ずしも日付文字列としてプログラムに渡せるとはかぎらない。
+言語の問題のせいばかりではない。@samp{IST} のようなタイムゾーン項目には、標準的な意味が存在しないからでもある。
+後でプログラムに構文解析をさせる予定の日付文字列を、@command{date}
+を使用して生成するのなら、日付の書式には、言語が何であるかに依存せず、@samp{UTC}
+と @samp{Z} 以外のタイムゾーン項目を使用しないものを指定するべきだ。
+それを行う方法をいくつか挙げておく。
@example
$ LC_ALL=C TZ=UTC0 date
@cindex case, ignored in dates
@cindex comments, in dates
日付を指定する際、アルファベットの大文字と小文字は全く区別されない。
-丸カッコで囲めば、コメントを入れることができる。ただし、丸カッコを入れ子
-にするときは、開きカッコと閉じカッコがきちんと対応していなければならない。
-数字が後に続かないハイフンは、現在のところ無視される。また、数値の前に
-付けた 0 も無視される。
+丸カッコで囲めば、コメントを入れることができる。ただし、丸カッコを入れ子にするときは、
+開きカッコと閉じカッコがきちんと対応していなければならない。
+数字が後に続かないハイフンは、現在のところ無視される。
+また、数値の前に付けた 0 も無視される。
@cindex leap seconds
-@samp{2005-02-29} のような無効な日付や @samp{24:00} のような無効な時刻は、
-却下される。閏秒をサポートしていないホストでは、@samp{23:59:60} のような
-時刻は、たとえ閏秒に正しく対応する値であっても、却下されるのが普通である。
+@samp{2005-02-29} のような無効な日付や @samp{24:00} のような無効な時刻は、却下される。
+閏秒をサポートしていないホストでは、@samp{23:59:60} のような時刻は、
+たとえ閏秒に正しく対応する値であっても、却下されるのが普通である。
@node Calendar date items
@cindex calendar date item
暦日の項目 (@dfn{calendar date item}) では、ある年のある一日を指定する。
-月を数字で指定するか、文字で指定するかにかによって、日付の指定法が変わって
-くる。以下に挙げる文字列は、すべて暦の上の同じ日付を指定している。
+月を数字で指定するか、文字で指定するかにかによって、日付の指定法が変わってくる。
+以下に挙げる文字列は、すべて暦の上の同じ日付を指定している。
@example
1972-09-24 # ISO 8601 形式。
24sep72
@end example
-年を省略することもできる。その場合は、日付文字列の後方で指定された
-年が使用される (訳注: たとえば、@code{date -d "5/3 2:00 UTC 2015"} のような
-場合だろう)。それもない場合は、今年が使われる。例を挙げると、次のような
-形である。
+年を省略することもできる。その場合は、日付文字列の後方で指定された年が使用される
+(訳注: たとえば、@code{date -d "5/3 2:00 UTC 2015"} のような場合だろう)。
+それもない場合は、今年が使われる。例を挙げると、次のような形である。
@example
9/24
@cindex ISO 8601 date format
@cindex date format, ISO 8601
-月を数字で表す場合、ISO 8601 の形式、すなわち @samp{@var{year}-@var{month}-@var{day}} が
-使用できる。ここで @var{year} は任意の正の数であり、@var{month} は 01 から 12
-までの数、@var{day} は 01 から 31 までの数である。数が 10 未満のときは、
-0 を前に付けることになる。@var{year} が 68 以下の場合は、@var{year} に2000 が加算
-される。また、@var{year} が 69 以上、100 未満ならば、1900 が加算される。
-アメリカ合衆国で一般的な @samp{@var{month}/@var{day}/@var{year}} という書式も使うことが
-できる。年を省略した @samp{@var{month}/@var{day}} も可能である。
+月を数字で表す場合、ISO 8601 の形式、すなわち @samp{@var{year}-@var{month}-@var{day}}
+が使用できる。ここで @var{year} は任意の正の数であり、@var{month} は 01 から 12
+までの数、@var{day} は 01 から 31 までの数である。
+数が 10 未満のときは、0 を前に付けることになる。@var{year} が
+68 以下の場合は、@var{year} に2000 が加算される。また、@var{year} が
+69 以上、100 未満ならば、1900 が加算される。アメリカ合衆国で一般的な
+@samp{@var{month}/@var{day}/@var{year}} という書式も使うことができる。
+年を省略した @samp{@var{month}/@var{day}} も可能である。
@cindex month names in date strings
@cindex abbreviations for months
-月の名前を使用する場合は、フルスペルで書いてもよい。すなわち、
-@samp{January}, @samp{February}, @samp{March}, @samp{April}, @samp{May},
-@samp{June}, @samp{July},
-@samp{August}, @samp{September}, @samp{October}, @samp{November},
-@samp{December} である。月の
-名前は、最初の 3 文字に省略することができる。その場合、省略の印の
-ã\83\94ã\83ªã\82ªã\83\89ã\81¯ã\80\81ä»\98ã\81\91ã\81¦ã\82\82ä»\98ã\81\91ã\81ªã\81\8fã\81¦ã\82\82ã\82\88ã\81\84ã\80\82ã\81¾ã\81\9fã\80\81@samp{September} ã\81®ä»£ã\82\8fã\82\8aã\81«ã\80\81
-@samp{Sept} と書くことも認められている。
+月の名前を使用する場合は、フルスペルで書いてもよい。
+すなわち、@samp{January}, @samp{February}, @samp{March},
+@samp{April}, @samp{May}, @samp{June}, @samp{July},
+@samp{August}, @samp{September}, @samp{October},
+@samp{November}, @samp{December} である。
+月の名前は、最初の 3 文字に省略することができる。
+ã\81\9dã\81®å ´å\90\88ã\80\81ç\9c\81ç\95¥ã\81®å\8d°ã\81®ã\83\94ã\83ªã\82ªã\83\89ã\81¯ã\80\81ä»\98ã\81\91ã\81¦ã\82\82ä»\98ã\81\91ã\81ªã\81\8fã\81¦ã\82\82ã\82\88ã\81\84ã\80\82
+また、@samp{September} の代わりに、@samp{Sept} と書くことも認められている。
月名を使用する場合、暦の上の日付は、以下のどの形で指定してもよい。
@cindex time of day item
-日付文字列中の時刻の項目 (@dfn{time of day item}) では、当日の時刻を指定
-する。以下に挙げるいくつかの例は、すべて同じ時刻を表している。
+日付文字列中の時刻の項目 (@dfn{time of day item}) では、当日の時刻を指定する。
+以下に挙げるいくつかの例は、すべて同じ時刻を表している。
@example
20:02:00.000000
@cindex leap seconds
もっと一般的に言うと、時刻は @samp{@var{hour}:@var{minute}:@var{second}} の形で指定できる。
@var{hour} は 0 から 23 までの数であり、@var{minute} は 0 から 59 までの数である。
-@var{second} は 0 から 59 までの数であり、@samp{.} や @samp{,} を後ろに付けて、一桁以上
-の数字からなる小数を続けてもよい。なお、@samp{:@var{second}} は省略することもでき、
-その場合は 0 を指定したことになる。閏秒をサポートするホストもまれには
-あり、そうしたところでは @var{second} に 60 を指定することができる。
+@var{second} は 0 から 59 までの数であり、@samp{.} や @samp{,}
+を後ろに付けて、一桁以上の数字からなる小数を続けてもよい。
+なお、@samp{:@var{second}} は省略することもでき、その場合は 0 を指定したことになる。
+閏秒をサポートするホストもまれにはあり、そうしたところでは @var{second}
+に 60 を指定することができる。
@findex am @r{in date strings}
@findex pm @r{in date strings}
@findex midnight @r{in date strings}
@findex noon @r{in date strings}
-時刻に @samp{am} や @samp{pm} (または @samp{a.m.} や @samp{p.m.}) が続く場合は、@var{hour}
-が
-1 から 12 までになる。@samp{:@var{minute}} は省略してもよい (0 を指定したものと
-見なされる)。@samp{am} は一日の前半を示し、@samp{pm} は一日の後半を示す。この
-表記法では、1 の前が 12 になる。すなわち、真夜中は @samp{12am} であり、正午
-は @samp{12pm} である。(これは @samp{12am} や @samp{12pm} の 12 を 0 のように見なす解釈
-であり、正午を @samp{12m}、深夜を @samp{12pm} とするラテン文化から来た従来の習慣
-とは逆になっている。)
+時刻に @samp{am} や @samp{pm} (または @samp{a.m.} や @samp{p.m.}) が続く場合は、
+@var{hour} が 1 から 12 までになる。@samp{:@var{minute}} は省略してもよい
+(0 を指定したものと見なされる)。@samp{am} は一日の前半を示し、@samp{pm}
+は一日の後半を示す。この表記法では、1 の前が 12 になる。すなわち、真夜中は
+@samp{12am} であり、正午は @samp{12pm} である。(これは @samp{12am} や
+@samp{12pm} の 12 を 0 のように見なす解釈であり、正午を @samp{12m}、深夜を
+@samp{12pm} とするラテン文化から来た従来の習慣とは逆になっている。)
@cindex time zone correction
@cindex minutes, time zone correction by
-また、時刻にはタイムゾーン補正を続けてもよい。補正は @samp{@var{s}@var{hh}@var{mm}} という
-形で表現され、@var{s} は @samp{+} または @samp{-} 符号、@var{hh} は時間帯の時間差、@var{mm} は分差の
-部分である。分差の部分 @var{mm} は指定しないでもよく、その場合は、1 桁ないし
-2 桁の補正は、時間差の指定と見なされる。なお、@var{hh} と @var{mm} の間をコロンで
-区切ってもよい。タイムゾーン補正をこの方法で指定した場合、それが、それ
-までに指定したいかなるタイムゾーンよりも、また、ローカル・タイムゾーン
-よりも優先され、指定した時刻は、協定世界時 (UTC) よりも補正分進んでいる
-(あるいは、遅れている) タイムゾーンの時刻であると解釈されることになる。
-一例を挙げると、@samp{+0530} と @samp{+05:30} は両方とも、UTC より 5.5 時間進んだ
-タイムゾーンを表している (たとえば、インドである)。これは、タイムゾーン
-補正を 1 時間以下の部分まで指定する最善の方法である。タイムゾーン補正の
-最大値は、24 時間である。
-
-@samp{am}/@samp{pm} とタイムゾーン補正は、どちらか一方のみが指定できる。両方を
-指定することはできない。
+また、時刻にはタイムゾーン補正を続けてもよい。補正は @samp{@var{s}@var{hh}@var{mm}}
+という形で表現され、@var{s} は @samp{+} または @samp{-} 符号、@var{hh}
+は時間帯の時間差、@var{mm} は分差の部分である。分差の部分
+@var{mm} は指定しないでもよく、その場合は、1 桁ないし
+2 桁の補正は、時間差の指定と見なされる。なお、@var{hh} と @var{mm}
+の間をコロンで区切ってもよい。タイムゾーン補正をこの方法で指定した場合、
+それが、それまでに指定したいかなるタイムゾーンよりも、
+また、ローカル・タイムゾーンよりも優先され、指定した時刻は、協定世界時 (UTC)
+よりも補正分進んでいる (あるいは、遅れている) タイムゾーンの時刻であると解釈されることになる。
+一例を挙げると、@samp{+0530} と @samp{+05:30} は両方とも、UTC より
+5.5 時間進んだタイムゾーンを表している (たとえば、インドである)。
+これは、タイムゾーン補正を 1 時間以下の部分まで指定する最善の方法である。
+タイムゾーン補正の最大値は、24 時間である。
+
+@samp{am}/@samp{pm} とタイムゾーン補正は、どちらか一方のみが指定できる。
+両方を指定することはできない。
@node Time zone items
@cindex time zone item
-タイムゾーン項目 (@dfn{time zone item}) では、国際時間帯を指定する。これは
-数個の文字によって表されるもので、たとえば、協定世界時 (Coordinated
-Universal Time) なら @samp{UTC} または @samp{Z} である。省略の印のピリオドは、
-すべて無視される。標準時のタイムゾーン (a non-daylight-saving time
-zone) の後ろに、文字列 @samp{DST} を独立した単語として (すなわち、空白、
-タブなどを間に置いて) 続けると、対応する夏時間のタイムゾーンを指定
-することができる。ちなみに、標準時のタイムゾーンの後ろに、タイムゾーン
-補正を続けて、両方の値を加算することもできる。ただし、その指定法は、
-通常 @samp{UTC} に対してしか行われない。たとえば、@samp{UTC+05:30} は @samp{+05:30} と
-同じことである。
-
-@samp{UTC} と @samp{Z} 以外のタイムゾーン項目は、時代遅れになりかかっている
-ので、使用しない方がよい。理由は解釈が一定しないからであり、たとえば、
-@samp{EST} はオーストラリアとアメリカ合衆国で違った意味を持っている。タイム
-ゾーン項目を使用するよりも、前節で述べた @samp{-0500} のような、数値による
-タイムゾーン補正を使った方が、曖昧さがないので、賢明である。
+タイムゾーン項目 (@dfn{time zone item}) では、国際時間帯を指定する。
+これは数個の文字によって表されるもので、たとえば、協定世界時 (Coordinated
+Universal Time) なら @samp{UTC} または @samp{Z} である。
+省略の印のピリオドは、すべて無視される。標準時のタイムゾーン
+(a non-daylight-saving time zone) の後ろに、文字列 @samp{DST}
+を独立した単語として (すなわち、空白、タブなどを間に置いて)
+続ければ、対応する夏時間のタイムゾーンを指定することができる。
+ちなみに、標準時のタイムゾーンの後ろに、タイムゾーン補正を続けて、
+両方の値を加算することもできる。ただし、その指定法は、通常 @samp{UTC}
+に対してしか行われない。たとえば、@samp{UTC+05:30} は @samp{+05:30}
+と同じことである。
+
+@samp{UTC} と @samp{Z} 以外のタイムゾーン項目は、時代遅れになりかかっているので、使用しない方がよい。
+理由は解釈が一定しないからであり、たとえば、@samp{EST}
+はオーストラリアとアメリカ合衆国で違った意味を持っている。
+タイムゾーン項目を使用するよりも、前節で述べた @samp{-0500}
+のような、数値によるタイムゾーン補正を使う方が、曖昧さがない分優れている。
タイムゾーン項目とタイムゾーン補正のどちらも指定されていない場合、
日付の解釈は、デフォルトのタイムゾーンのルールを用いて行われる (@pxref{Specifying time zone rules})。
@cindex ISO 8601 date and time of day format
@cindex date and time of day format, ISO 8601
-ISO 8601 の拡張日時書式は、ISO 8601 形式の日付、@samp{T} という区切り文字、
-ISO 8601 形式の時刻という構成になっている。@samp{T} の代わりにスペースが
-使われていても、この書式として認識される。
+ISO 8601 の拡張日時書式は、ISO 8601 形式の日付、@samp{T}
+という区切り文字、ISO 8601 形式の時刻という構成になっている。
+@samp{T} の代わりにスペースが使われていても、この書式として認識される。
-この書式では、時刻は 24 時間表記を使用するべきである。秒については、
-コンマまたはピリオドに小数部分を続けることで、小数点以下も指定できる。
-ISO 8601 で認められている分や時の小数表現には対応していない。たいていの
-ã\83\9bã\82¹ã\83\88ã\81\8cã\83\8aã\83\8eã\82»ã\82³ã\83³ã\83\89ã\81®ç²¾åº¦ã\81®ã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82ã\82µã\83\9dã\83¼ã\83\88
-を超えた精度は、エラーや警告を出さずに単に除去される。
+この書式では、時刻は 24 時間表記を使用するべきである。
+秒については、コンマまたはピリオドに小数部分を続けることで、小数点以下も指定できる。
+ISO 8601 で認められている分や時の小数表現には対応していない。
+ã\81\9fã\81\84ã\81¦ã\81\84ã\81®ã\83\9bã\82¹ã\83\88ã\81\8cã\83\8aã\83\8eã\82»ã\82³ã\83³ã\83\89ã\81®ç²¾åº¦ã\81®ã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+ã\82µã\83\9dã\83¼ã\83\88ã\82\92è¶\85ã\81\88ã\81\9f精度ã\81¯ã\80\81ã\82¨ã\83©ã\83¼ã\82\84è¦å\91\8aã\82\92å\87ºã\81\95ã\81\9aã\81«å\8d\98ã\81«é\99¤å\8e»ã\81\95ã\82\8cã\82\8bã\80\82
例をいくつか挙げてみよう。
@example
-2012-09-24T20:02:00.052-0500
-2012-12-31T23:59:59,999999999+1100
+2012-09-24T20:02:00.052-05:00
+2012-12-31T23:59:59,999999999+11:00
1970-01-01 00:00Z
@end example
@cindex day of week item
-曜日を明示的に指定すると、未来のその曜日にまで日付を前に進めることに
-なる (これが行われるのは、その必要があるときだけである)。
+曜日を明示的に指定すると、未来のその曜日にまで日付を前に進めることになる
+(これが行われるのは、その必要があるときだけである)。
-曜日は省略なしに書いてもよい。すなわち、@samp{Sunday}, @samp{Monday}, @samp{Tuesday},
-@samp{Wednesday}, @samp{Thursday}, @samp{Friday}, @samp{Saturday} である。最初の
-3 文字に短縮することもでき、その場合、省略の印のピリオドは付けても
-付けなくてもよい。@samp{Tuesday} には @samp{Tues}、@samp{Wednesday} には @samp{Wednes}、
+曜日は省略なしに書いてもよい。すなわち、@samp{Sunday}, @samp{Monday},
+@samp{Tuesday}, @samp{Wednesday}, @samp{Thursday},
+@samp{Friday}, @samp{Saturday} である。最初の 3 文字に短縮することもでき、
+その場合、省略の印のピリオドは付けても付けなくてもよい。
+@samp{Tuesday} には @samp{Tues}、@samp{Wednesday} には @samp{Wednes}、
@samp{Thursday} には @samp{Thur} または @samp{Thurs} という特殊な省略形もある。
@findex next @var{day}
@findex last @var{day}
-曜日項目の前に数値を付けてもよい。週がその分だけ前に進むことに
-なる。これは、@samp{third monday} のような表現で使うのが、一番よい。その
-伝で、@samp{last @var{day}} や @samp{next @var{day}} という表現も許されている (@var{day} には
-Sunday, Monday などの曜日を指定する)。それぞれ、単独の @var{day} が表す
-ことになる日付より 1 週間前、または 1 週間後の日付になる。
-@sp 1
-(訳注: next について上記のことが成り立つのは、@var{day} が今日の曜日の
-ときだけである。それ以外の場合は、@var{day} と @samp{next @var{day}} は同じになる。)
+曜日項目の前に数値を付けてもよい。週がその分だけ前に進むことになる。
+これは、@samp{third monday} のような表現で使うのが、一番よい。
+その伝で、@samp{last @var{day}} や @samp{next @var{day}} という表現も許されている
+(訳注: @var{day} の部分には Sunday, Monday などの曜日を指定する)。
+それぞれ、単独の @var{day} が表すことになる日付より 1 週間前、または
+1 週間後の日付になる。
+
+(訳注: next について上記のことが成り立つのは、@var{day} が今日の曜日のときだけである。
+それ以外の場合は、@var{day} と @samp{next @var{day}} は同じになる。)
曜日項目の後ろにコンマがあっても、無視される。
-@sp 1
-(訳注: 確かに @samp{-d "Thu, 2013-03-07"} といった指定では、コンマが無視
-されるが、@samp{-d "next Thu,"} や @samp{-d "3 Thu,"} といった指定では、``invalid date''
-と言われ、エラーになる。)
+
+(訳注: 確かに @samp{-d "Thu, 2013-03-07"} といった指定では、コンマが無視されるが、
+@samp{-d "next Thu,"} や @samp{-d "3 Thu,"} といった指定では、
+``invalid date'' と言われ、エラーになる。)
@node Relative items in date strings
@cindex relative items in date strings
@cindex displacement of dates
-相対表現の項目 (@dfn{Relative items}) は、日付を (指定しない場合は、現在の
-日付を) 前後に移動させる。また、相対表現の項目の作用は、加算されていく。
+相対表現の項目 (@dfn{Relative items}) は、日付を (指定しない場合は、現在の日付を)
+前後に移動させる。また、相対表現の項目の作用は、加算されていく。
相対表現の項目とは、次のようなものである。
@example
@findex day @r{in date strings}
@findex hour @r{in date strings}
@findex minute @r{in date strings}
-時間をどれくらい移動するかの単位は、文字列を使って選択する。まる
-数年、あるいは、まる数ヶ月ずらすのなら、@samp{year} や @samp{month} という文字列
-を使う。年も月も、曖昧な単位である。すべての年や月が、同じ長さをしている
-ã\82\8fã\81\91ã\81§ã\81¯ã\81ªã\81\84ã\81\8bã\82\89ã\81 ã\80\82ã\82\82ã\81£ã\81¨å\8e³å¯\86ã\81ªå\8d\98ä½\8dã\81¨ã\81\97ã\81¦ã\81¯ã\80\81@samp{fortnight} (14 æ\97¥é\96\93)ã\80\81
-@samp{week} (7 日間)、@samp{day} (24 時間)、@samp{hour} (60 分間)、@samp{minute} または
-@samp{min} (60 秒間)、@samp{second} または @samp{sec} (1 秒間) がある。こうした単位
-には、複数語尾の @samp{s} を付けてもよいが、付けても無視される。
+時間をどれくらい移動するかの単位は、文字列を使って選択する。
+まる数年、あるいは、まる数ヶ月ずらすのなら、@samp{year} や @samp{month} という文字列を使う。
+年も月も、曖昧な単位である。すべての年や月が、同じ長さをしているわけではないからだ。
+ã\82\82ã\81£ã\81¨å\8e³å¯\86ã\81ªå\8d\98ä½\8dã\81¨ã\81\97ã\81¦ã\81¯ã\80\81@samp{fortnight} (14 æ\97¥é\96\93)ã\80\81@samp{week}
+(7 日間)、@samp{day} (24 時間)、@samp{hour} (60 分間)、@samp{minute}
+または @samp{min} (60 秒間)、@samp{second} または @samp{sec} (1 秒間)
+ã\81\8cã\81\82ã\82\8bã\80\82ã\81\93ã\81\86ã\81\97ã\81\9få\8d\98ä½\8dã\81«ã\81¯ã\80\81è¤\87æ\95°èª\9eå°¾ã\81® @samp{s} ã\82\92ä»\98ã\81\91ã\81¦ã\82\82ã\82\88ã\81\84ã\81\8cã\80\81ä»\98ã\81\91ã\81¦ã\82\82ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82
@findex ago @r{in date strings}
-時間の単位の前に、何倍かを示す乗数を置くことができる。乗数には、
-@samp{+} または @samp{-} の符号を付けてもよい。符号なしの数値には、@samp{+} の符号が
-付いているものと見なされる。数値を指定しなければ、乗数に 1 を指定した
-ことになる。相対表現の項目に @samp{ago} を続けるのは、単位の前にマイナスの
-乗数を置くのと同じことである。
+時間の単位の前に、何倍かを示す乗数を置くことができる。
+乗数には、@samp{+} または @samp{-} の符号を付けてもよい。
+符号なしの数値には、@samp{+} の符号が付いているものと見なされる。
+数値を指定しなければ、乗数に 1 を指定したことになる。相対表現の項目に
+@samp{ago} を続けるのは、単位の前にマイナスの乗数を置くのと同じことである。
@findex day @r{in date strings}
@findex tomorrow @r{in date strings}
@findex yesterday @r{in date strings}
-@samp{tomorrow} という文字列は、1 日分未来ということである (@samp{day} と
-等しい)。@samp{yesterday} は、1 日分過去ということだ (@samp{day ago} と等しい)。
+@samp{tomorrow} という文字列は、1 日分未来ということである (@samp{day}
+と等しい)。@samp{yesterday} は、1 日分過去ということだ (@samp{day ago} と等しい)。
@findex now @r{in date strings}
@findex today @r{in date strings}
@findex this @r{in date strings}
-@samp{now} や @samp{today} という文字列は、値 0 の時間移動に対応する相対表現の
-項目である。値 0 の時間移動は、先行する項目によって別の日時に変更されて
-いないかぎり、今現在の日時を表すということから、@samp{now} (今) や @samp{today}
-(今日) という言い方ができるわけだ。こうしたものは、他の項目を強調する
-ã\81\9fã\82\81ã\81«ã\80\81ã\81\9fã\81¨ã\81\88ã\81°ã\80\81@samp{12:00 today} ã\81¨ã\81\84ã\81£ã\81\9få\85·å\90\88ã\81«ä½¿ã\81\86ã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8bã\80\82
-@samp{this} という文字列にも、値 0 の時間移動という意味があるが、こちらは
-@samp{this thursday} のような日付文字列で使用される。
-
-相対表現の項目によって生成される日付が、標準時と夏時間の切り替えを
-典型とするような、時刻調整の境界を越えたものになる場合、生成される日時
-は適切に調整される。
-
-単位の曖昧さが、相対表現の項目では問題を起こすことがある。たとえば、
-@samp{2003-07-31 -1 month} は、2003-07-01 と評価されるかもしれない。
-2003-06-31 が無効な日付だからだ。先月が何月かをもっと確実に引き出す
-ためには、今月の 15 日よりも前に、先行する月を求めればよい。例を挙げる。
+@samp{now} や @samp{today} という文字列は、値 0 の時間移動に対応する相対表現の項目である。
+値 0 の時間移動は、先行する項目によって別の日時に変更されていないかぎり、
+今現在の日時を表すということから、@samp{now} (今) や @samp{today} (今日) という言い方ができるわけだ。
+こうしたものは、他の項目を強調するために、たとえば、@samp{12:00 today}
+ã\81¨ã\81\84ã\81£ã\81\9få\85·å\90\88ã\81«ä½¿ã\81\86ã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8bã\80\82@samp{this} ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\81«ã\82\82ã\80\81å\80¤ 0
+の時間移動という意味があるが、こちらは @samp{this thursday}
+のような日付文字列で使用される。
+
+相対表現の項目によって生成される日付が、
+標準時と夏時間の切り替えを典型とするような、時刻調整の境目を越えたものになる場合、
+生成される日時は適切に調整される。
+
+単位の曖昧さが、相対表現の項目では問題を起こすことがある。
+たとえば、@samp{2003-07-31 -1 month} は、2003-07-01 と評価されるかもしれない。
+2003-06-31 が無効な日付だからだ。先月が何月かをもっと確実に引き出すためには、
+今月の 15 日よりも前に、先行する月を求めればよい。例を挙げる。
@example
$ date -R
Last month was June!
@end example
-なお、標準時と夏時間の切り替えのような時刻変更があるときの前後で
-日付の操作を行う場合には、注意した方がよい。24 時間も加算されたり、
-減算されたりしてしまうことも、ないとは言えないからだ。そこで、
-たいていの場合、日付の計算に取りかかる前に、環境変数 @env{TZ} を @samp{UTC0}
+また、標準時と夏時間の切り替えのような時刻変更があるときの前後で日付の操作を行う場合も、気を付けた方がよい。
+24 時間も加算されたり、減算されたりしてしまうことも、ないとは言えないからだ。
+そこで、たいていの場合、日付の計算に取りかかる前に、環境変数 @env{TZ} を @samp{UTC0}
に設定して、協定世界時を採用するのが賢明である。
@node Pure numbers in date strings
純粋な 10 進数をどう解釈するかは、日付文字列の文脈次第である。
-10 進数が @var{yyyy}@var{mm}@var{dd} の形をとり、日付文字列中のそれより前に他の暦日の
-項目 (@pxref{Calendar date items}) が存在しない場合は、@var{yyyy} は暦の上の
-ある 1 日の年の部分と見なされる。@var{mm} は何番目の月かということ、@var{dd} は
-その月の日にちである。
+10 進数が @var{yyyy}@var{mm}@var{dd} の形をとり、日付文字列中のそれより前に他の暦日の項目
+(@pxref{Calendar date items}) が存在しない場合は、@var{yyyy}
+は暦の上のある 1 日の年の部分と見なされる。
+@var{mm} は何番目の月かということ、@var{dd} はその月の日にちである。
+
+10 進数が @var{hh}@var{mm} の形をとり、日付文字列中のそれより前に他の時刻の項目が存在しない場合は、
+@var{hh} はある 1 日の時刻の何時の部分と、@var{mm} は何分の部分と見なされる。
+@var{mm} を省略してもよい。
-10 進数が @var{hh}@var{mm} の形をとり、日付文字列中のそれより前に他の時刻の
-項目が存在しない場合は、@var{hh} はある 1 日の時刻の何時の部分と、@var{mm} は
-何分の部分と見なされる。@var{mm} を省略してもよい。
+日付文字列中で、ある数値の左側に暦の上の日にちとその日の時刻の両方が存在し、相対表現の項目が存在しない場合は、
+その数値が今年の代わりに使われる。
-日付文字列中で、ある数値の左側に暦の上の日にちとその日の時刻の両方が
-存在し、相対表現の項目が存在しない場合は、その数値が今年の代わりに
-使われる。
-@sp 1
-(訳注: たとえば、@code{date -d "3/27 10:10 2012"} と指定すると、今年の
-代わりに 2012 が使われるということらしい。@code{date -d "3/27/2001 10:10 2012"}
-や @code{date -d "2001-03-27 10:10 2012"} は無効な日付になるし、
-@code{date -d "3/27 1010 2012"} は、1010 年 3 月 27 日 20:12:00 になる。)
+(訳注: たとえば、@code{date -d "3/27 10:10 2012"} と指定すると、
+今年の代わりに 2012 が使われるということらしい。
+@code{date -d "3/27/2001 10:10 2012"} や @code{date -d "2001-03-27 10:10
+2012"}
+は無効な日付になるし、@code{date -d "3/27 1010 2012"}
+は、1010 年 3 月 27 日 20:12:00 になる。)
@node Seconds since the Epoch
@section Unix 紀元 (the Epoch) からの秒数
-@samp{@@} に数値を続けると、それは、秒数として、システム内部で使われるタイム
-スタンプを表すことになる。数値には、小数点 (@samp{.} または @samp{,}) が含まれて
-いてもよい。内部表現がサポートしていない余分な精度は、マイナスの無限に
-向けて切り詰められる。@samp{@@} で始まるこうした数値は、他の日付項目のいかなる
-ものとも組み合わせて使うことができない。欠けるところのない完全なタイム
-スタンプの指定だからである。
+@samp{@@} に数値を続けると、それは、秒数として、システム内部で使われるタイムスタンプを表すことになる。
+数値には、小数点 (@samp{.} または @samp{,}) が含まれていてもよい。
+内部表現がサポートしていない余分な精度は、マイナスの無限に向けて切り詰められる。
+@samp{@@} で始まるこうした数値は、他の日付項目のいかなるものとも組み合わせて使うことができない。
+欠けるところのない完全なタイムスタンプの指定だからである。
@cindex beginning of time, for POSIX
@cindex epoch, for POSIX
-コンピュータの内部では、時間は、ある紀元 (an epoch) --- きちんと定義
-された時間中のある一点 --- からの秒数として表現されている。GNU や POSIX
-のシステムでは、紀元は 1970-01-01 00:00:00 UTC である。従って、@samp{@@0} は
-その時刻を表し、@samp{@@1} は 1970-01-01 00:00:01 UTC を表す、以下同様と
-いうことになる。GNU を始め、POSIX に準拠したほとんどのシステムでは、
-POSIX に対する拡張として、こうした時間表記をマイナスの秒数を使うことも
-含めて、サポートしている。従って、@samp{@@-1} は 1969-12-31 23:59:59 UTC を
-表すことになる。
-
-伝統的な Unix システムでは、秒を 32 ビットの 2 の補数である整数で
-数えており、1901-12-13 20:45:52 から 2038-01-19 03:14:07 UTC まで
-表すことができる。もっと新しいシステムでは、64 ビットの秒数計算を、
-ナノセコンドのサブカウント付きで使用しており、宇宙の寿命として
-知られている時間のうちのあらゆる時刻を 1 ナノセコンドの精密さで表す
-ことができる。
+コンピュータの内部では、時間は、ある紀元 (an epoch) ---
+きちんと定義された時間中のある一点 --- からの秒数として表現されている。
+GNU や POSIX のシステムでは、紀元は 1970-01-01 00:00:00 UTC である。
+従って、@samp{@@0} はその時刻を表し、@samp{@@1} は 1970-01-01 00:00:01 UTC
+を表す、以下同様ということになる。GNU を始め、POSIX に準拠したほとんどのシステムでは、
+POSIX に対する拡張として、こうした時間表記をマイナスの秒数を使うことも含めて、サポートしている。
+従って、@samp{@@-1} は 1969-12-31 23:59:59 UTC を表すことになる。
+
+旧来の Unix システムでは、秒を 32 ビットの 2 の補数である整数で数えており、
+1901-12-13 20:45:52 から 2038-01-19 03:14:07 UTC まで表すことができる。
+もっと新しいシステムでは、64 ビットの秒数計算を、ナノセコンドのサブカウント付きで使用しており、
+宇宙の寿命として知られている時間のうちのあらゆる時刻を 1 ナノセコンドの精密さで表すことができる。
@cindex leap seconds
ほとんどのホストのこうした計算では、閏秒の存在が無視されている。
-たとえば、ほとんどのホストで @samp{@@915148799} は 1998-12-31 23:59:59 UTC を
-表し、@samp{@@915148800} は 1999-01-01 00:00:00 UTC を表している。従って、
-間にある 1998-12-31 23:59:60 UTC という閏秒を表現する方法は存在しない。
+たとえば、ほとんどのホストで @samp{@@915148799} は 1998-12-31 23:59:59 UTC
+を表し、@samp{@@915148800} は 1999-01-01 00:00:00 UTC を表している。
+従って、間にある 1998-12-31 23:59:60 UTC という閏秒を表現する方法は存在しない。
@node Specifying time zone rules
@section タイムゾーン・ルールの指定
@vindex TZ
-通常、日付の解釈は、現在のタイムゾーンのルールを使って行われる。そして、
-その現在のタイムゾーンのルールを指定しているのは、環境変数 @env{TZ} か、
-@env{TZ} が設定されていなければ、システムのデフォルト設定である。今、
-ある一つの日付のみに別のタイムゾーンでデフォルトとして使われる一連の
-ã\83«ã\83¼ã\83«ã\82\92é\81©ç\94¨ã\81\97ã\81\9fã\81\84ã\81¨ã\81\97ã\82\88ã\81\86ã\80\82ã\81\9dã\81®å ´å\90\88ã\81¯ã\80\81æ\97¥ä»\98ã\82\92 @samp{TZ="@var{rule}"} ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97
-で始めればよい。日付中では、対になった二重引用符 (@samp{"}) で @var{rule} を必ず
-囲わなければならない。また、@var{rule} 中に引用符やバックスラッシュが
-ã\81\82ã\82\8bã\81¨ã\81\8dã\81¯ã\80\81ã\81\9dã\82\8cã\82\92ã\83\90ã\83\83ã\82¯ã\82¹ã\83©ã\83\83ã\82·ã\83¥ã\81§ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
+通常、日付の解釈は、現在のタイムゾーンのルールを使って行われる。
+ã\81\9dã\81\97ã\81¦ã\80\81ã\81\9dã\81®ç\8f¾å\9c¨ã\81®ã\82¿ã\82¤ã\83 ã\82¾ã\83¼ã\83³ã\81®ã\83«ã\83¼ã\83«ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\81\84ã\82\8bã\81®ã\81¯ã\80\81ç\92°å¢\83å¤\89æ\95° @env{TZ} ã\81\8bã\80\81
+@env{TZ} が設定されていなければ、システムのデフォルト設定である。
+今、ある一つの日付のみに別のタイムゾーンでデフォルトとして使われる一連のルールを適用したいとしよう。
+ã\81\9dã\81®å ´å\90\88ã\81¯ã\80\81æ\97¥ä»\98ã\82\92 @samp{TZ="@var{rule}"} ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\81§å§\8bã\82\81ã\82\8cã\81°ã\82\88ã\81\84ã\80\82
+日付中では、対になった二重引用符 (@samp{"}) で @var{rule} を必ず囲わなければならない。
+また、@var{rule} 中に引用符やバックスラッシュがあるときは、
+それをバックスラッシュでエスケープしなければならない。
一例を挙げると、GNU の @command{date} コマンドを使って、「パリで
-2004 年 10
-月 31 日 午前 6 時 30 分のとき、ニューヨークでは何時か?」という質問に
-答えることができる、以下で示すように、@samp{TZ="Europe/Paris"}で始まる
-日付を使うのである。
+2004 年 10 月 31 日 午前 6 時 30 分のとき、
+ニューヨークでは何時か?」という質問に答えることができる、
+以下で示すように、@samp{TZ="Europe/Paris"}で始まる日付を使うのである。
@example
$ export TZ="America/New_York"
Sun Oct 31 01:30:00 EDT 2004
@end example
-この例では、@option{--date} のオペランドの最初の部分で、それ自身の @env{TZ} が
-設定されている。そこで、このオペランドの残りの部分は、@samp{Europe/Paris} の
-ルールに従って処理され、@samp{2004-10-31 06:30} という文字列が、パリの日時で
-あるかのように扱われる。ところが、@command{date} コマンドの出力は、全体のタイム
-ゾーンのルールに従って処理されるので、出力にはニューヨークの時刻が使用
-されるのである。(2004 年には、パリは通常ニューヨークより 6 時間進んで
-いた。しかし、この例は、時差が 5 時間だったハロウィーンの日のほんの短い
-間のことを言っている。)
-
-@env{TZ} の値はルールであり、ルールには通常、@samp{tz} データベースの地域名が
-付けられている (@uref{http://www.twinsun.com/tz/tz-link.htm})。地域名の最新の
-一覧は、TWiki Date and Time Gateway で見ることができる
-(@uref{http://twiki.org/cgi-bin/xtra/tzdate})。なお、GNU 以外のホストの中
-には、@env{TZ} を設定するとき、@samp{TZ=":America/New_York"} のように、地域名の
-前にコロンを置く必要があるものもある。
-
-@samp{tz} データベースには、@samp{Arctic/Longyearbyen} から @samp{Antarctica/South
-_Pole} に至るまで、実にさまざまな地域が含まれている。それでも、目下
-航海の最中でタイムゾーンが船特有のものである場合や、@samp{tz} データベースに
-対応していない non-GNU のホストを使用している場合は、@samp{tz} データベース
-の地域名で表されるルールの代わりに、POSIX 式のルールを使う必要がある
-かもしれない。@samp{UTC0} のような POSIX 式の単純なルールだと、夏時間なしの
-タイムゾーン指定になるが、簡単な夏時間制度なら指定できる他のルールも
-存在する。 @xref{TZ Variable,, Specifying the Time Zone with @code{TZ}, libc,
+この例では、@option{--date} のオペランドの最初の部分で、それ自身の @env{TZ}
+が設定されている。そこで、このオペランドの残りの部分は、@samp{Europe/Paris}
+のルールに従って処理され、@samp{2004-10-31 06:30}
+という文字列が、パリの日時であるかのように扱われる。ところが、@command{date}
+コマンドの出力は、全体のタイムゾーンのルールに従って処理されるので、
+出力にはニューヨークの時刻が使用されるのである。
+(2004 年には、パリは通常ニューヨークより 6 時間進んでいた。
+しかし、この例は、時差が 5 時間だったハロウィーンの日のほんの短い間のことを言っている。)
+
+@env{TZ} の値はルールであり、ルールには通常、@samp{tz} データベースの地域名が付けられている
+(@uref{http://www.twinsun.com/tz/tz-link.htm})。
+地域名の最新の一覧は、TWiki Date and Time Gateway で見ることができる
+(@uref{http://twiki.org/cgi-bin/xtra/tzdate})。
+なお、GNU 以外のホストの中には、@env{TZ} を設定するとき、@samp{TZ=":America/New_York"}
+のように、地域名の前にコロンを置く必要があるものもある。
+
+@samp{tz} データベースには、@samp{Arctic/Longyearbyen} から
+@samp{Antarctica/South_Pole} に至るまで、実にさまざまな地域が含まれている。
+それでも、目下航海の最中でタイムゾーンが船特有のものである場合や、@samp{tz}
+データベースに対応していない non-GNU のホストを使用している場合は、@samp{tz}
+データベースの地域名で表されるルールの代わりに、POSIX
+式のルールを使う必要があるかもしれない。@samp{UTC0}
+のような POSIX 式の単純なルールだと、夏時間なしのタイムゾーン指定になるが、
+簡単な夏時間制度なら指定できる他のルールも存在する。
+@xref{TZ Variable,, Specifying the Time Zone with @code{TZ}, libc,
The GNU C Library}.
@node Authors of parse_datetime
@cindex MacKenzie, David
@cindex Meyering, Jim
@cindex Eggert, Paul
-@code{parse_datetime} は、@code{getdate} として誕生した。最初の実装を行ったのは、
-Steven M. Bellovin (@email{smb@@research.att.com}) であり、ノースカロライナ大学
-チャペルヒル校に在学中のことだった。その後、Usenet 上で数人によって
-機能が追加され、1990 年 8 月に Rich $alz (@email{rsalz@@bbn.com}) と Jim Berets
-(@email{jberets@@bbn.com}) によって徹底的なオーバーホールがなされた。GNU シス
-テムのための様々な改訂は、David MacKenzie, Jim Meyering, Paul Eggert
-などによって行われた。ほぼ同様の機能を持つ Posix の @code{getdate} 関数との
-衝突を避けるために @code{get_date} と名前を変えたのも、この改訂の一部であり、
-さらに後に、@code{parse_datetime} と改名した。Posix の @code{getdate} 関数は、
-@code{strptime} の使用によりロケール特有の日付の解析に優れているが、環境変数
-や外部のファイルに依存しており、@code{parse_datetime} の持つスレッド安全性
-(thread-safety) を欠いている。
+@code{parse_datetime} は、@code{getdate} として誕生した。
+最初の実装を行ったのは、Steven M. Bellovin (@email{smb@@research.att.com})
+であり、ノースカロライナ大学チャペルヒル校に在学中のことだった。
+その後、Usenet 上で数人によって機能が追加され、1990 年 8 月に
+Rich $alz (@email{rsalz@@bbn.com}) と Jim Berets
+(@email{jberets@@bbn.com}) によって徹底的なオーバーホールがなされた。
+GNU システムのための様々な改訂は、David MacKenzie, Jim Meyering,
+Paul Eggert などによって行われた。ほぼ同様の機能を持つ Posix の
+@code{getdate} 関数との衝突を避けるために @code{get_date}
+と名前を変えたのも、この改訂の一部であり、さらに後に、@code{parse_datetime}
+と改名した。Posix の @code{getdate} 関数は、@code{strptime}
+の使用によりロケール特有の日付の解析に優れているが、環境変数や外部のファイルに依存しており、
+@code{parse_datetime} の持つスレッド安全性 (thread-safety) を欠いている。
@cindex Pinard, F.
@cindex Berry, K.
-この章は、Fran@,{c}ois Pinard (@email{pinard@@iro.umontreal.ca}) がソースコード
-ã\81® @file{parse_datetime.y} ã\82\92å\85\83ã\81«ã\81\97ã\81¦æ\9c\80å\88\9dã\81«ä½\9cæ\88\90ã\81\97ã\80\81ã\81\9dã\81®å¾\8cã\80\81K. Berry
-(@email{kb@@cs.umb.edu}) が増補改訂した。
+この章は、Fran@,{c}ois Pinard (@email{pinard@@iro.umontreal.ca})
+ã\81\8cã\82½ã\83¼ã\82¹ã\82³ã\83¼ã\83\89ã\81® @file{parse_datetime.y} ã\82\92å\85\83ã\81«ã\81\97ã\81¦æ\9c\80å\88\9dã\81«ä½\9cæ\88\90ã\81\97ã\80\81
+その後、K. Berry (@email{kb@@cs.umb.edu}) が増補改訂した。