こんにちは、さるまりんです。
とあるサーバーでdate
コマンドを実行してみました。
$ date
2021年 6月 20日 日曜日 04:49:01 UTC
タイムゾーンがUTCで設定されているようです。
/etc/sysconfig/clock
ZONE="UTC"
UTC=true
(とあるサーバーはAmazon Linuxです。)
この結果を日本標準時(JST)で表示したい時は次のようにタイムゾーンを指定します。
$ TZ=JST-9 date
2021年 6月 20日 日曜日 14:12:54 JST
TZ
はタイムゾーンを示す環境変数です。これを一時的に設定してdate
コマンドを実行しています。
JST-9
がタイムゾーンの文字列です。
JST
は日本標準時(Japan Standard Time)、-9
はJSTからみてUTC(協定世界時)との時差です。UTCはJSTから9時間前=マイナス9時間という意味です。
日本標準時を調べてみるとUTC+9と書いてあることがあります。これは逆、UTCからみてJSTは9時間後(プラス9時間)という意味です。時間ってややこしいですね(汗)。
環境変数を設定する部分とコマンドの間にセミコロンはありません。
TZ=JST-9; date
こうではなく
TZ=JST-9 date
こうです。
タイムゾーンを示すこんな文字列でも設定可能です。
$ TZ=Asia/Tokyo date
2021年 6月 20日 日曜日 14:30:51 JST
もちろん他のタイムゾーンも表示できます。
例えばアメリカ東部標準時だと
$ TZ=EST+5 date
2021年 6月 20日 日曜日 00:32:12 EST
夏時間だと
$ TZ=EDT+4 date
2021年 6月 20日 日曜日 01:32:24 EDT
America/New_York
で指定すると
$ TZ=America/New_York date
2021年 6月 20日 日曜日 01:33:51 EDT
です。
ちなみに、ESTは東部標準時 East Standard Time、EDTは東部標準時(夏時間) Eastern Daylight Timeの略です。
よく使うので.bashrc
でエイリアスを設定してみました。
alias jstdate='TZ=JST-9 date'
実行するとこうなりました。
$ jstdate
2021年 6月 20日 日曜日 14:40:33 JST
ちょっと便利になりました。
他のLinuxやMac OSでも同じかもしくは似たような指定で同じことができると思います。
読んでくださってありがとうございました。
それではまた!