GASのタイムゾーンをスクリプトエディタ(IDE)から日本時間に変更する方法

2022年5月8日

Google Apps Script(GAS)のプロジェクトにはタイムゾーン設定があり、日本時間(GMT−9)以外の時刻設定になっているケースがあります。

2022年4月のリリースノートでGASのIDEから設定可能になったので、日本時間やその他のタイムゾーンに設定手順を解説します。

GASのタイムゾーンがプログラムに影響

Google Apps Script(GAS)のプロジェクトでは、タイムゾーン設定が存在しています。

このタイムゾーン設定によって、日時を扱うDate型オブジェクトに影響が出てきます。

タイムゾーンによって、date型変数の日時出力結果が変化します。

例えば、GASのタイムゾーン設定がグリニッジ標準時間だと、dateの時間が日本時間よりも9時間前の時間になっています。

日本時間を想定したGASスクリプトでタイムゾーンが異なると、処理に支障が生じてしまいます。

実行環境に応じてタイムゾーンは変更

Google Apps Script(GAS)の実行環境によってはタイムゾーンを変更する必要が出てきます。

特に以前はGASプロジェクトを新規作成すると、日本時間(GMT-9)になっておらず、アメリカのニューヨーク時間になっているケースがありました。

アメリカのニューヨーク時間と日本時間とは-13時間という大きな時差が生じます。

また、日本以外の時差がある場所でGASスクリプトを実行する場合にも、その場所のタイムゾーンに変更が必要です。

元々はマニュフェストファイルからタイムゾーン変更

Google Apps Script(GAS)プロジェクトのタイムゾーン変更は元々、マニュフェストファイルであるappsscript.jsonファイルの中身を直接修正して変更する必要がありました。

GASのスクリプトエディタの左メニューから、歯車アイコンをクリックしてプロジェクトの設定ページを開きます。

そこに、『「appsscript.json」マニフェスト ファイルをエディタで表示する』にチェックを入れます。

すると、GASのスクリプトエディタにappsscript.jsonのマニフェストファイルが表示されるようになります。

このappsscript.jsonのファイル内にタイムゾーン(timeZone)の記述がありますので、そこの値「Asia/Tokyo」に変更すると、日本時間に変更可能です。

2022年4月のリリースノートでIDEから変更可能に

appsscript.jsonのマニュフェストファイルからタイムゾーンを変更する方法から、2022年4月に新しい機能が実装されました。

2022年4月13日に発表されたリリースノートでGoogle Apps Script(GAS)のIDEからタイムゾーンを変更する機能が搭載されました。

それによって、マニュフェストファイルの中身を直接書き換える方法は必要なくなりました。

GASのスクリプトエディタからカンタンに変更することができます。

GASのタイムゾーン変更手順

実際にGoogle Apps Script(GAS)のIDEでタイムゾーンを変更する手順を解説します。

1.GASのスクリプトエディタの左メニューから歯車アイコンの「プロジェクトの設定」をクリックします。

2.プロジェクト設定ページにタイムゾーン設定がプルダウンで表示されているので、日本の場合は日本時刻を選択します。

 

以上の2stepでGASプロジェクトのタイムゾーン設定は完了です。

date型オブジェクトで現在時刻を表示してみると、スクリプトを実行した時間が表示されています。

GASのIDEからタイムゾーンがGUI操作でカンタンに変更できるようになりました。

なお、GASのIDE上でのタイムゾーンのGUI設定は、実際にはマニュフェストファイルを内部的に修正しています。

タイムゾーン設定変更後、appsscript.jsonを表示すると、タイムゾーンの記述が変更されています。

まとめ・終わりに

今回、Google Apps Script(GAS)のプロジェクトに設定されているタイムゾーンを変更する方法を紹介しました。

タイムゾーン設定によって、GASスクリプトのdate型オブジェクトの時間が異なるようになります。

元々はタイムゾーン設定はマニュフェストファイルのappsscript.jsonの記述を直接修正することで変更する必要がありました。

しかし、2022年4月にプロジェクト設定ページでのタイムゾーン変更機能が実装され、GUI操作で変更可能になりました。

GASプロジェクトのタイムゾーン設定を変更したい場合は、紹介した手順で変更しましょう。