デフォルトでは UTC 時間で動くサーバでタイムゾーン設定指定をするときに TZ 環境変数を使うメモ

デフォルトでは UTC 時間で動くサーバでタイムゾーン設定指定をするときに TZ 環境変数を使うメモ

デフォルトでは UTC 時間で動くサーバでタイムゾーン設定指定をするときに TZ 環境変数を使うメモです。

背景

以前は Heroku で時間関係の API を作っていたらローカルの日本時間な PC で検証していると問題なく日本時間ベースで時間関連の対応ができて、デフォルトでは UTC 時間で動くサーバにデプロイした後にそのあたりの計算がズレてしまう状況に遭遇していて、最近も Render でも遭遇しました。

そのときにサーバーにタイムゾーン設定指定する必要があることが色々調べるとわかり TZ 環境変数うと良いことが分かりました。

Render の例

Render の Environment Variables の場合はこんな指定です。

日本時間にしたいときはこのように TZ = Asia/Tokyo にします。

参考文献

こういうサーバーの便利な環境変数指定の決め事ってどこで決まっているだろうと調べていたら、UNIX 系 OS の標準規格である POSIX で定義されているようなものでした。

このあたり、検索だけだとどう調べればいいか分からなく、生成 AI にも聞きながら知識を掘り下げれてよかったです。