Dynamics365 タイムゾーン(TimeZone)の落とし穴
みなさん、こんにちは。
以前の記事に続いて、今回も日時に関する話です。
今回も、Dynamics365を導入中のお客様のところで発生した事象でして、発端は「なぜかデータの時刻が30分ずれる」といった連絡でした。
発生現象の確認
発生した状況を再現してみます。
例として、タスクエンティティの日時項目「期日」を利用します。
以下のように、いろいろな年の、「1月1日午前10時」がセットされたデータを用意します。
ところが、あるユーザーにとっては、このデータが、以下のように見えるのです。
2018年までのデータが、なぜか、午前10時ではなく9時半になってしまっています。
タイムゾーンの落とし穴
結論としては、該当のユーザーの個人設定で、タイムゾーン設定が東京ではなく「平壌(ピョンヤン)」になっていたというのが原因です。
ところで、日本時間と平壌時間は、どちらも同じなのでは?と思う方もいらっしゃるかもしれません。
2021年時点では、確かにどちらもUTC+9:00ですが、実は北朝鮮は過去にUTC+8:30を採用していた時期があり、その当時は日本とは30分ほど時差がありました。
そしてDynamicsでは、過去の日付のデータに対して、その当時に採用されていたタイムゾーンをさかのぼって確認し、時刻の表示に反映するという処理を行っているようなのです。
ピョンヤン時間が日本時間と同じUTC+9:00になったのは2018年5月のことです。
2018年5月4日の23時30分に、時刻を30分ほど繰り上げることで5月5日の午前0時としたようです。
先ほどと同様の検証を、2018年5月4日~5日の間をもう少し刻んで確認します。
タイムゾーンが東京時間のとき、以下のようにデータが見えています。
ユーザー設定を平壌時間切り替えた状態で、これを見ると、
5月4日までは30分ずれており、5日になってからはずれていないので、確かに、2018年5月4日から5日にかけて、平壌時間の設定が切り替わっていることが分かります。
このように、一見、日本時間と同じ設定に見える平壌時間ですが、こういった事情があるので、タイムゾーン設定は正しく選択する必要がある訳です。
※なお、2018年以前に、2015年にも平壌時間が変更されたことがありますが、Dynamics上は2018年以前は一律でUTC+8:30としているようです。
おわりに
タイムゾーン設定というと、選択した地域によって一律で何時間ずれるというだけかと思いきや、意外と凝った処理が行われているのでした。
何かの拍子に本事象にぶつかってしまった人の参考になれば幸いです。