Microsoft 365

SharePoint Online で集計値の「TODAY」「NOW」日時がズレる

SharePoint Online のリストやライブラリで、集計値列に NOWTODAY 関数を利用して日時を計算した際、実際に動かしてみると想定と異なる値が返されて、困惑したことはないでしょうか。

例えば、下図のようなケースです。二つの列の初期値に =Now() を設定しているのですが、「日付と時刻列」列はタイムゾーンを反映した正しい時刻が表示される一方、「集計値」列の値は大きくズレています。

20211224 time image01

ズレが時単位のため、サイトやプロファイルのロケーション設定を疑いたくなりますが。実際に確認してみても、きちんと日本に設定されています。

集計値列の関数は米国時間

実はこれ、集計値の(現時点での)仕様です。SharePoint Online の集計値列では、関数をもちいて時刻を取得した場合、タイムサーバーの時刻がベースになります。このサーバーは米国にあるため、集計値では PST(米国太平洋標準日時)での時刻が返されるわけです。

これを前提に、日本時刻に正しく適用するには時差17時間を考慮すると
=NOW()+TIME(17,0,0)
になります(実際にはサマータイムがあるため、それを考慮すると時差16時間になる(こともある)のがまたイヤらしいところなのですが…ここでは割愛)。

ハマると困りますが、知っていれば回避できる類の「穴」ですね。
頭の片隅にでも置いておいて頂けると良いかと思います。