MENU

【GAS】初期設定 “America/New_York” のタイム ゾーンを日本に変更する方法

  • URLをコピーしました!

こんにちは、etau です 🤓

前回の記事で「日付型クラス」を紹介しました。

Google Apps Script (GAS) には日付をあつかう場合に、重要な要素「タイム ゾーン」を知っておく必要があります。

タイム ゾーンは Date オブジェクトを利用する上で、軸となるものです。

この設定が想定されていたものと違う場合、コードで思ったような処理ができなくなるため注意が必要です。

GAS プロジェクトのタイム ゾーンは、初期設定が日本になっていない (2022 年 3 月 8 日現在) ため、必要に応じて設定をおこないます。

日付の操作をおこなわない場合や、日付の操作をおこなっても問題がない場合もあります

今回はこのタイム ゾーンの設定方法について説明していきます。

目次

Date オブジェクトからタイム ゾーンを確認する

以下のコードで、実行結果を確認してみます。

function myFunction() {
  const date = new Date();
  console.log(date);
  console.log(date.getFullYear());
  console.log(date.getMonth());
  console.log(date.getDate());
  console.log(date.getHours());
  console.log(date.getMinutes());
  console.log(date.getSeconds());
  console.log(Utilities.formatDate(date, 'JST', 'yyyy/MM/dd HH:mm:ss'));
}

実行結果は、以下のとおりです。

Date オブジェクトのログ 1

上記のログから以下の 3 点が確認できます。

  1. タイム ゾーンが日本に設定されている場合 GMT+0900 (Japan Standard Time) と出力される部分が、GMT-0500 (Eastern Standard Time) となっている
  2. getHours メソッドで「14」時が返ってきてほしいところが「0」時 (5 + 9 時間差)となっている
  3. Utilities クラスの formatDate メソッドでは問題ないことが確認できる

このように、Date オブジェクトや時間 (getHours) をコード内で利用する場合に、タイム ゾーンの設定が必要になります。

つづいて appsscript.json を確認していきます。

appsscript.json とはプロジェクトに関する情報を JSON 形式で持っているファイルです

appsscript.json からタイム ゾーンを確認する

まずは、appsscript.json を以下の手順で表示させます。

appsscript.json を表示させる

[プロジェクトの設定] から『「appsscript.json」マニュフェスト ファイルをエディタで表示する』のチェック ボックスにチェックを入れます。

「appsscript.json」マニュフェスト ファイルをエディタで表示する

[ エディタ] の画面に戻ると、新しく [appsscript.json] が表示されているので、そちらをクリックします。

「appsscript.json」を表示する

本プロジェクトに関する情報が表示されます。

これ以外にも、コンテナ側のマクロ機能に、関数を登録している場合や、ライブラリを利用している場合などの情報もここに表示されます

それでは、本題のタイム ゾーンを日本に変える方法です。

タイム ゾーンを日本に変更する

appsscript.json の timeZone プロパティ部分を"America/New_York"から"Asia/Tokyo"に書き換えます。

{
  "timeZone": "Asia/Tokyo",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

ほかの項目は、変更しないよう注意してください

さきほどのコードをあらためて実行してみると、欲しかった値が表示されています。

Date オブジェクトのログ 2

まとめ

今回 appsscript.json を書き換えてタイム ゾーンを日本に変更しました。

Date オブジェクトの操作に関して、おかしな結果が返ってくる場合は appsscript.json を表示させて確認するクセをつけておきましょう。

以前は、このような設定をおこなう必要はなかったので、将来的にはタイム ゾーンの初期設定が"Asia/Tokyo" に戻る可能性も十分考えられますが、日本以外のタイム ゾーン利用することも可能ですので、覚えておいて損はない方法です。

2022/04/27 追記

[プロジェクトの設定] から [タイムゾーン] の指定ができるようになりました!

gas-set-time-zone-to-japan_06
[タイムゾーン] の設定
gas-set-time-zone-to-japan_featured-image

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

株式会社フロント・ワークス代表取締役の etau です 🤓
へーしゃは「ノンプロ協会」に、個人では「ノンプロ研」所属しています。
趣味は「マンガ」「料理 (特にスパイス カレー)」「お酒」「コーヒー」「コーチング」「マネジメント」です。

目次