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"); 」

これはちょっと解せないですが、仕様のようです。

初期設定の間違いは一生モノ。。。

いいなと思ったら応援しよう!