GAS: new Date() したらアメリカ時間っぽいので日本時間で format する方法

GAS: new Date() したらアメリカ時間っぽいので日本時間で format する方法

March 6, 2021
Google Apps Script(GAS)
Google Apps Script(GAS)

Google Apps Script が実行されるサーバーはアメリカにあるらしい #

console.log(new Date()); したらこんな出力となる。

Sat Mar 06 2021 01:48:51 GMT-0500 (Eastern Standard Time)

実行マシンのタイムゾーンで出力されるのは JavaScript の言語仕様的に間違ってなさそうだし、クラウドコンピューティングなんだからアメリカにあるサーバーで実行されていても驚きはしない。ただ日本のタイムゾーンで時刻を表示したいんだ!って時にどうするかという話。

日付フォーマット関数がユーティリティとして用意されている #

Class Utilities | Apps Script | Google Developers

任意のタイムゾーンでフォーマット可能。日本時刻で出力するにはこうすればよい。

const dateStr = Utilities.formatDate(new Date(), 'JST', "yyyy-MM-dd'T'HH:mm:ssZ");
console.log(dateStr);
2021-03-06T15:59:19+0900

Utilities クラスには雑多な関数が集まっている #

#dateFormat() 以外にも、

  • MD5, SHA1, SHA256 などのハッシュ値生成
  • BASE 64 エンコーダー/デコーダー
  • Blob 操作
  • Blob の zip 圧縮/解凍
  • CSV パーサー
  • sleep 関数

と色々あって興味深い。というかお前 sleep できるんかっていう。