Delugeのタイムゾーンに注意
Zoho CRMんのスケジュール機能を使って、前日日付のデータを処理する夜間バッチを作りました。
ところが、どうしてもうまく行きません。どうも昨日をちゃんと認識していない様子。
info now;を実行すると「13-Jan-2021 05:05:52」と出ます。
今は「13-Jan-201 22:05:52」です。どうやら17時間ずれているよう。
これはCRMのタイムゾーンがおかしいのかと思い、調べてみると組織のタイムゾーンがたしかに間違っている。これを修正し、シメシメと思い実行しても、やはり解決しない。。。
やむなくZohoに確認してみたところ、以下のような回答。
「本件ですが、Delugeの実行環境(DRE)のタイムゾーンが異なっていると考えられます。DREのタイムゾーンは、カスタム関数を使い始める時点でのアカウントのタイムゾーンが指定されるとのことです。ユーザがアカウントの設定でタイムゾーンを変更しても、Delugeでは変更されません。」
なんと!!!
「代替案として、DateやDateTimeのデータを.toString()で文字列データに変換します。その際の2つ目の引数に"Asia/Tokyo"を追加いただければ、日本標準時で表示されます。
// .toString("変換形式", "Asia/Tokyo") を追加
info today.toString("MMM-dd-yyyy", "Asia/Tokyo");
info now.toString("MMM-dd-yyyy HH:mm:ss", "Asia/Tokyo"); 」
これはちょっと解せないですが、仕様のようです。
初期設定の間違いは一生モノ。。。