Google Apps Script Google Workspace (G Suite) 備忘録

new Date()の値がおかしいのでGASプロジェクトのタイムゾーンを日本時間に設定した

カレンダー関係のスクリプトの動作がどうもおかしい

GASでGoogleカレンダー関係のスクリプトを書いていて、どうも動作がおかしい。

あれこれ調べていたら、どうやらnew Date()で生成した日付がおかしいことが分かりました。

例えば、こんな感じで日付を指定して予定を取得し

  const startTime = new Date('2022/01/19 00:00:00');
  const endTime = new Date('2022/01/19 23:00:00');
  const events = calendar.getEvents(startTime, endTime);

やりたいことは1/19の予定を取得したいのですが、なぜか1/20の予定も取得されてしまいました。

どうやら指定した時間が外国の時間だと解釈されてしまい。時差の分だけ翌日に食い込んでしまったようです。

プロジェクトのタイムゾーンを日本に設定

GASの場合は、プロジェクト自体のタイムゾーンを日本時間にすることで、正しく解釈してもらえるようになります。

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

「コード」に"appsscript.json"が表示されるのでクリック

"timeZone": "America/New_York"を"Asia/Tokyo"に変更

これでプロジェクト内の時計が日本時間に統一されました。

-Google Apps Script, Google Workspace (G Suite), 備忘録