はじめに
Google Apps Scriptで、日付操作ライブラリであるDay.js
を使っていたときに、現在時刻を取得しようとしたら日本時間ではない時間が取得されてしまいました。関数の方にタイムゾーンを設定しても上手くいかず少し迷ってしまったので、今回はGASでタイムゾーンを設定する方法をまとめようと思います。
GASでタイムゾーンを設定する方法を調べてみた
事前に
今回は時間を取得するためにDay.js
というライブラリを使います。ライブラリの追加する方法は、GASのエディタを開き、ライブラリから以下のコードを貼り付けて検索、追加してください。
- コード:
1ShsRhHc8tgPy5wGOzUvgEhOedJUQD53m-gd8lG2MOgs-dXC_aCZn9lFB
- 参考資料
本題
さて、本題に移ります。以下のスクリプトを動かしてみたところ、違うタイムゾーンの結果が返ってきました。
const getTime = () => console.log(dayjs.dayjs().toDate());
// Tue Dec 06 2022 00:08:04 GMT-0500 (Eastern Standard Time)
関数の方をいじってみましたが上手くいかず、調べてみたところプロジェクトの設定
から変更できることがわかりました。GASのエディタの左サイドバーにある歯車マークをクリックすると、タイムゾーンを設定する箇所が出てきます。そこから、自分が使いたいタイムゾーンに設定してください。
ちなみにプロジェクトの設定
以外からタイムゾーンを変更することも可能です。GASにはプロジェクトのマニュフェストファイルであるappsscript.json
があり、そこからタイムゾーンを設定することも可能です。
以下のようなファイルになっているため、timezone
の箇所を自分が使いたいタイムゾーンに書き換えることで変更可能です (今回はDay.js
ライブラリを追加しているため、ライブラリが追加されています)
{
"timeZone": "America/New_York",
"dependencies": {
"libraries": [
{
"userSymbol": "dayjs",
"version": "1",
"libraryId": "1ShsRhHc8tgPy5wGOzUvgEhOedJUQD53m-gd8lG2MOgs-dXC_aCZn9lFB"
}
]
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
さいごに
今回は、簡単ではありますがGASでタイムゾーンを設定する方法についてまとめてみました。