Node.js タイムゾーン問題を環境変数 TZ=utc で回避する 〜 production: UTC vs development: JST

Tadashi Shigeoka ·  Tue, August 31, 2021

Node.js で本番環境が UTC で開発環境が JST なタイムゾーン問題を環境変数 TZ=utc で回避した話をご紹介します。

Nodejs | ノード・ジェイエス

背景 production: UTC vs development: JST

日本時間(JST)で働いているので開発環境は JST なのですが、本番環境は UTC (Etc/GMT) なケースでタイムゾーン問題でバグが起こりがちだったので、環境変数 TZ を明示的に設定して解決したというお話です。

環境変数 TZ=utc or TZ='Etc/GMT' でタイムゾーン問題回避

環境変数 TZ の方法はいくつかありますが、おすすめの順番で3つ記載しています。

.env に設定する

.env ファイルに以下を1行追記します。

TZ=utc

package.json に TZ を明記する

{
  "scripts": {
    "dev": "TZ=utc nodemon server/index.js",
  }
}

環境変数 TZ を指定して node コマンドを実行する

TZ=utc node index.js

以上、環境変数 TZ=utc を設定して Node.js の本番環境が UTC で開発環境が JST なタイムゾーン問題を回避した、現場からお送りしました。

参考情報