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
とか書くと、汎用性が高まるらしいです。


0 件のコメント:

prometheusのrate()関数の罠

 久しぶりのAdventカレンダー挑戦、うまくいく気がしません。 閑話休題。実のところ、rate()関数というよりは、サーバー側のmetric初期化問題です。 さて、何らかのサーバーAがあったとして、それが更に他のサーバーBにRPCを送っているとします。サーバーBの方でホワイトボ...