GASのタイムゾーンを変更する方法

Google App Scriptで「今」を取得するために new Date() なんてしますよね。

let now = new Date(); //現在の時刻を取得

それでデバッグ実行してみると now の値はこんな感じになります。

思った通りの時刻じゃないですね。時差が日本のGMT+0900(+9時間)じゃなくて、GMT-0400(-4時間)になっています。

原因はタイムゾーンの設定

GASではデフォルトのタイムゾーンが America/New_York になっているらしい。ユーザーのロケールに合わせてくれよ。

Date に足し算引き算して時差を合わせてもいいのですが、せっかくなのでタイムゾーンを変更してコードを汚さずに対応してみます。

まずは、タイムゾーンを変更するために appsscript.json を変更できるようにします。このファイルは通常は隠されていて、GASプロジェクトの設定によって見えるようになります。

GASプロジェクトのメニュー

メニューの「プロジェクトの設定」を開いて「「appsscript.json」マニュフェスト ファイルをエディタで表示する」にチェックを入れます。

エディタに戻るとファイルにappsscript.jsonが追加されているので、このファイルを開きます。あとは、timeZone のところを Asia/Tokyo に変更するだけです。

"timeZone": "Asia/Tokyo",

これで new Date() すれば、日本時間での日時を取得できます。

もし国際協定時(時差±0)にしたければ、Asia/Tokyo の代わりに Etc/GMT でいけると思います。

One thought on “GASのタイムゾーンを変更する方法

Comments are closed.