サイトのタイムゾーン
SharePoint Online ではサイトごとに「タイムゾーン」が設定されています。
タイムゾーンはサイト内で取り扱う日付と時刻(ファイルの更新日時やリストの日付と時刻のデータ)に関する設定です。
SharePoint では日付と時刻のデータが、内部的な UTC(協定世界時)で記録されています。ただユーザーが実際に利用するにはローカルな時間で取り扱えた方が便利で分かりやすいので、内部的な UTC の日付と時刻をサイトの「タイムゾーン」で設定されているタイムゾーンのローカル時間に変換して表示しています。
表示だけでなく入力の場合も、入力された日付と時刻をローカル時間として扱い、UTC に変換した上でデータを保管します。
例えばタイムゾーンが日本(「大阪、札幌、東京」)になっている SharePoint サイトでリストの日付と時刻型の列に 2025年1月10日 15:00 というデータを入力すると、SharePoint はこれを UTC に変換した 2025年1月10日 06:00 という日付・時刻として格納します。
タイムゾーンの確認
サイトのタイムゾーンは以下で確認・設定できます。
1. SharePoint サイトで [設定] をクリックし、[サイト情報] を選択します。
2.[サイト情報] が表示されるので、[すべてのサイト設定を表示] をクリックします。
3. [サイトの設定] が表示されるので、[サイトの管理] の下にある [地域の設定] をクリックします。
4. 以下のように現在のサイトのタイムゾーンが確認できます。
このサイト(Sales)は現在「太平洋標準時」のタイムゾーンが設定されていることが分かります。
Power Automate で SharePoint の日付と時刻のデータを取得する
それではこのタイムゾーンが Power Automate のフローにどう影響するのか見ていきましょう。
上でタイムゾーン設定を確認したサイトに、以下のようなリストを作成します。
Power Automate で以下のよう [SharePoint 項目が作成されたとき] をトリガーにするクラウド フローを作成します。
テスト実行にためにリストにアイテムを追加します。
フローが実行されました。
実行結果で [項目が作成されたとき] の出力(body)をコピーして内容を確認します。
“ID”: 1,
“Title”: “A商事”,
“DateTime”: “2025-01-15T18:00:00Z”,
“EndTime”: “2025-01-15T19:00:00Z”,
“rep”: {
“@odata.type”: “#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser”,
“Claims”: “i:0#.f|membership|**********@blackhippopotamus.onmicrosoft.com”,
“DisplayName”: “京町 良夫”,
“Email”: “**********@blackhippopotamus.onmicrosoft.com”,
“Picture”: “https://blackhippopotamus.sharepoint.com/sites/Sales/_layouts/15/UserPhoto.aspx?Size=L&AccountName=**********@blackhippopotamus.onmicrosoft.com“
},
“rep#Claims”: “i:0#.f|membership|**********@blackhippopotamus.onmicrosoft.com”,
“Modified”: “2025-01-09T04:12:11Z”,
“Created”: “2025-01-09T04:12:11Z”,
トリガーからの出力は ISO 8601 形式の文字列として記載されています。
また時刻のタイムゾーンは UTC となっています(”2025-01-15T18:00:00Z” の末尾の Z はタイムゾーンが UTC であることを示しています)
このように、Power Automate で SharePoint Online の日付と時刻のデータを取得すると、SharePoint が内部的に保持している UTC のタイムゾーンのデータが得られます。
サイトのタイムゾーンの影響
ここで UTC の 1月15日 18:00 という時刻を日本時間に換算すると、1月16日 3:00 となってしまいます。
サイトのタイムゾーンを確認した際、タイムゾーンが「太平洋標準時」となっていたことで分かるように、この UTC の時刻は太平洋標準時(Pacific Standard Time)の 1月15日 10:00 を示しています。
先ほども説明したように、SharePoint リストで入力された日時はサイトのタイムゾーン設定の日時として扱われます。このためサイトのタイムゾーンが日本標準時になっていない場合、Power Automate でリスト内の時刻データを扱うと意図しないズレが発生します。
例えば上の例のリストの入力内容を元に Outlook カレンダーに予定を作成するようなフローの場合、リストでの表示とは 17 時間ズレた時刻に予定が作成されてしまします。
※17 時間は日本標準時と UTC の差 +9 時間と、太平洋標準時と UTC の差 -8 時間の合計
このような問題を避けるために、日本国内だけで利用する場合は SharePoint サイトのタイムゾーンを日本標準時(「大阪、札幌、東京」)に設定することをお勧めします。
既存のサイトのタイムゾーンは最初に説明した [サイトの設定] から変更できます。
ただしサイトのタイムゾーンを変更すると、それまで入力されていたリストの日付と時刻型のデータは、新しいタイムゾーンに合わせた表示に変更されます。
例えば前掲のテストで利用したアイテムは、以下のように DateTime 列に 1/15/2025 10:00 AM と表示されていましたが、
タイムゾーンを日本標準時に変更すると、以下のように表示が変わります。
※ 1/15/2025 10:00 AM を太平洋標準時として解釈し、それを日本標準時に換算した表示になります
ロケールも併せて変更したので、日付の表示形式も dd/mm/yyyy から yyyy/mm/dd に変わっています
そのため既存のサイトのタイムゾーンを変更する場合は、その影響を十分に検討してください。
※日付時刻そのものが変わるのではなく、タイムゾーンに従った表示が変わることに注意してください
また新しいサイトを作成する場合の既定のタイムゾーンは SharePoint 管理センターで設定できます。
上記のように既存サイトのタイムゾーン変更は既存のアイテムに影響するため、サイトのタイムゾーンは初期値を適切に設定しておくことをお勧めします。
なお既存のサイトのタイムゾーンの変更が難しい場合は、Power Automate 内で [時刻からの減算] や [時刻への追加] アクションを利用して、サイトのタイムゾーンと日本標準時との差を補正することが可能です。
日付と時刻のアクションのリファレンス – Power Automate | Microsoft Learn