[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
通常、日付の解釈は、現在のタイムゾーンのルールを使って行われる。
そして、その現在のタイムゾーンのルールを指定しているのは、環境変数 TZ
か、
TZ
が設定されていなければ、システムのデフォルト設定である。
今、ある一つの日付のみに別のタイムゾーンでデフォルトとして使われる一連のルールを適用したいとしよう。
その場合は、日付を ‘TZ="rule"’ という文字列で始めればよい。
日付中では、対になった二重引用符 (‘"’) で rule を必ず囲わなければならない。
また、rule 中に引用符やバックスラッシュがあるときは、
それをバックスラッシュでエスケープしなければならない。
一例を挙げると、GNU の date
コマンドを使って、「パリで
2004 年 10 月 31 日 午前 6 時 30 分のとき、
ニューヨークでは何時か?」という質問に答えることができる、
以下で示すように、‘TZ="Europe/Paris"’で始まる日付を使うのである。
$ export TZ="America/New_York" $ date --date='TZ="Europe/Paris" 2004-10-31 06:30' Sun Oct 31 01:30:00 EDT 2004 |
この例では、‘--date’ のオペランドの最初の部分で、その日付専用の TZ
が設定されている。そこで、このオペランドの残りの部分は、‘Europe/Paris’
のルールに従って処理され、‘2004-10-31 06:30’
という文字列が、パリの日時であるかのように扱われる。ところが、date
コマンドの出力は、全体のタイムゾーンのルールに従って処理されるので、
出力にはニューヨークの時刻が使用されるのである。
(2004 年には、パリは通常ニューヨークより 6 時間進んでいた。
しかし、この例は、時差が 5 時間だったハロウィーンの日のほんの短い間のことを言っている。)
TZ
の値はルールであり、ルールには通常、‘tz’ データベースの地域名が付けられている
(http://www.twinsun.com/tz/tz-link.htm)。
地域名の最新の一覧は、TWiki Date and Time Gateway で見ることができる
(http://twiki.org/cgi-bin/xtra/tzdate)。
なお、GNU 以外のホストの中には、TZ
を設定するとき、‘TZ=":America/New_York"’
のように、地域名の前にコロンを置く必要があるものもある。
‘tz’ データベースには、‘Arctic/Longyearbyen’ から
‘Antarctica/South_Pole’ に至るまで、実にさまざまな地域が含まれている。
それでも、目下航海の最中でタイムゾーンが船特有のものである場合や、‘tz’
データベースに対応していない non-GNU のホストを使用している場合は、‘tz’
データベースの地域名で表されるルールの代わりに、POSIX
式のルールを使う必要があるかもしれない。POSIX 式では、‘UTC0’
のような単純なルールだと、夏時間なしのタイムゾーン指定になるが、
そのほかに、簡単な夏時間制度なら指定できる別のルールも存在する。
See (libc)TZ Variable section ‘Specifying the Time Zone with TZ
’ in The GNU C Library.
This document was generated on June 7, 2022 using texi2html 1.82.