2007-08-01

GNU date/Linux での TZ 変数とタイムゾーン

何故かあまり知られてないようなので書いておくと、
TZ=JST date
なんて実行すると、date コマンドは /usr/share/zoneinfo 以下の JST という名前のファイルを探しにいきます。もしなければ何も言わずに TZ が UTC であるとして処理されます。

「どこかに(テキスト形式の簡単な)データベースがあって、JST というタイムゾーン名から日本用のゾーンファイルを探して読み込む」なんて気の効いたことは起こりません。残念。

詳細は environ(5), tzset(3), そして infor date などを参照のこと。あくまでも TZ 値はファイル名として認識されるので、JST にしたければ
TZ=Asia/Tokyo date
とか
TZ=Japan date
とかしないといかんわけです。GNU date 的には、後は
TZ=UTC-05:30 date
とか
TZ="UTC+08:00 DST" date
とか、もう明示的に指定するしかないと。

それから、tzset(3)的観点からすると
TZ=":Asia/Tokyo" date
とか書くと、汎用性が高まるらしいです。


コメントを投稿

インフラエンジニアのスキルチェック

どっかのサイバーメガネさんが ネタ 提供してくれたので。ネタの妥当性には触れません。 DB設計 既にあるのからER図を作成せざるをえない状況に追い込まれたというか、そういう状況だから呼ばれたことはあるけど、実は一からやったことない。 要件からDB定義を作成できる 「...