GAS(Google Apps Script)で new Date() したら変な時間になってる!なんでやねん!となったので調べたことを備忘録としてまとめました。
事象
new Date() で現在日時をログに出力してみたらタイムトラベルしていた。
ただ今、日本時刻2020年9月5日 01:40ぐらい。
下記GASを実行すると…
function log() {
var dt = new Date();
console.log(dt);
}
なんでやねん!
調べてみるとタイムゾーンがずれているとのこと。
タイムゾーンの変更方法
GASの編集画面の ファイル > プロジェクトのプロパティ から変更できるらしい。
変更できないじゃん…。
本来はタイムゾーンの東部時間と表示されている部分がプルダウンになっていて選択できるらしい。
これは困った…。
さらに調べているとプロジェクトのプロパティの中身を直接編集できるらしい。
appsscript.jsonを直接編集する
スクリプトエディタの 表示 > マニュフェスト ファイルを表示 を押下するとappsscript.jsonフェイルが表示される。
{
"timeZone": "America/New_York",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"sheets": {
"macros": [{
"menuName": "log",
"functionName": "log"
}]
}
}
TimeZoneの部分を「Asia/Tokyo」に変更して保存すると…
"timeZone": "Asia/Tokyo",
タイムゾーンが東京に変わってますね!
先程のGASを実行すると…
無事、日本に帰ってくることができました。
めでたし、めでたし。