【Power Automate】日本時間への変換を使えない時に原因を切り分ける手順

【Power Automate】日本時間への変換を使えない時に原因を切り分ける手順
🛡️ 超解決

Power Automateでフローを作成していると、日時の処理が想定通りに動かず困ることがあります。特に日本時間への変換は、タイムゾーンの扱いや環境依存の設定によって思わぬ結果を招きやすい部分です。フローが正しく動作しない原因が、端末の設定、アカウントの構成、あるいは実行環境の違いにあるのかを切り分ける方法を、実務の失敗例を交えながら解説します。

【要点】この記事で確認すること

  • 最初に確認する場所: フローの「タイムゾーン変換」アクションの設定値と、変換元のUTC時刻が正しいかどうか
  • 切り分けの軸: フロー作成者のアカウント設定、実行環境(クラウド vs ローカル)、データソースのタイムゾーン情報
  • 注意点: 会社PCのローカル時刻を勝手に変更しないこと。管理者に確認が必要な項目(テナントのデフォルトタイムゾーンなど)があります

ADVERTISEMENT

日本時間への変換でよくある症状と原因の全体像

Power Automateで日本時間への変換に失敗するケースは、主に3つのパターンに分類できます。1つ目は、変換後の時刻が9時間ずれている(UTCのまま表示される)パターンです。2つ目は、変換後に時刻がずれるものの、ずれ方が一定しないパターンです。3つ目は、エラーが発生してフロー自体が停止するパターンです。

これらの原因として考えられるのは、フローのアクション設定ミス、アカウントのタイムゾーン設定の相違、データソース側のタイムゾーン情報の欠落、そして実行環境の違いです。特に、クラウドフローとデスクトップフローではタイムゾーンの扱いが異なるため、まずは「どの環境でフローが動いているか」を明確にする必要があります。

症状 考えられる原因 対策の方向性
常にUTCで表示される convertTimeZoneアクションのタイムゾーン指定ミス 送信元/送信先タイムゾーンの再確認
ずれ方が不規則 データソースの時刻がUTC以外の混合 データソース側の時刻表記を統一
エラーで停止する タイムゾーン名の誤りや環境変数の値不足 タイムゾーン名を「Tokyo Standard Time」に統一

最初に確認すべき3つのポイント

ポイント1: フロー内のタイムゾーン変換アクションの設定

Power AutomateでUTCから日本時間に変換する際には、「convertTimeZone」アクションを使用します。このアクションには「Base time」「Source time zone」「Destination time zone」の3つの必須入力項目があります。よくある失敗は、Source time zoneに「UTC」と入力すべきところを空欄のままにしたり、「Coordinated Universal Time」のような別の表記を使ってしまうことです。Power Automateではタイムゾーン名として「UTC」「Tokyo Standard Time」といった標準の文字列を使う必要があり、日本語の「日本標準時」は認識されません。

また、Base timeに指定する値が文字列型か日時型かで動作が変わります。データソースから取得した値がテキストとして渡されている場合、明示的に日時型に変換してからconvertTimeZoneに渡さないと、正しく変換されないことがあります。特にSharePointやExcelの日付データは内部的にシリアル値で保持されているため注意が必要です。

ポイント2: フロー実行環境の違い

Power Automateには「クラウドフロー」と「デスクトップフロー」があり、それぞれでタイムゾーンの扱いが異なります。クラウドフローは常にUTCで動作し、明示的にconvertTimeZoneを使わない限り日本時間にはなりません。一方、デスクトップフローはローカルPCのタイムゾーン設定を継承するため、PCの時刻設定が日本以外になっていると予期しない時刻が出力されます。会社PCで誤ってタイムゾーンを変更しないように注意してください。

さらに、ゲートウェイ経由でオンプレミスデータを扱う場合、ゲートウェイサーバーのタイムゾーンも影響します。管理者にゲートウェイサーバーのタイムゾーン設定を確認してもらう必要があります。

ポイント3: アカウントとテナントのタイムゾーン設定

Power Automateのアカウント設定には、ユーザープロファイルのタイムゾーンがありますが、これはフローの実行結果には直接影響しません。ただし、フロー作成時に「タイムゾーン変換」を省略して単に「utcNow()」などの関数を使うと、アカウント設定に関係なくUTCが返ってきます。ここで混乱する方が多いので、必ず明示的に変換するようにしましょう。

テナント全体の既定のタイムゾーンは、管理者がPower Platform管理センターで設定できますが、これもフローの実行時には無視されることがあります。環境ごとに設定が異なる場合があるため、管理者に確認することをおすすめします。

状況別の切り分け手順

ここでは、実際の症状に応じて原因を特定する手順を、具体的な操作とともに説明します。

  1. フローのアクション設定を確認する。 問題のフローを編集モードで開き、日時変換に関連するアクションを確認します。convertTimeZoneアクションが正しく設定されているか、Source time zoneとDestination time zoneが適切かをチェックしてください。例えば「UTC」→「Tokyo Standard Time」のように指定します。
  2. 実行履歴で実際の入出力を確認する。 フローの実行履歴を開き、変換前のBase timeの値と変換後の値を見比べます。実行履歴にはアクションの入力と出力が記録されているので、そこでずれの有無を確認できます。変換結果がUTCのままであれば、アクションが正しく機能していない可能性があります。
  3. データソースの時刻形式を統一する。 SharePointリストやExcelの日付データは、UTCで保存されている場合とローカル時刻で保存されている場合があります。一度すべての時刻をUTCに統一してからconvertTimeZoneを適用すると混乱を避けられます。SharePointの場合は列の設定で「タイムゾーン」を指定できるので、そこを日本にしておくと表示上は日本時間になりますが、内部的にはUTCです。
  4. デスクトップフローの場合はPCのタイムゾーン設定を確認する。 デスクトップフローを使っている場合、フローが動作するPCのシステムタイムゾーンが日本時間になっているかを確認してください。時刻と日付の設定で「タイムゾーン」が「(UTC+9:00) 大阪、札幌、東京」になっているか確認します。会社PCでは管理者によってロックされていることがあるので、その場合は管理者に依頼してください。
  5. テスト用の簡単なフローを作成して検証する。 単体で動作確認できるシンプルなフロー(例:「utcNow()をconvertTimeZoneで日本時間に変換して結果をメール送信」)を作成し、期待通りの変換が行われるかテストします。このテストで正しく変換されれば、元のフローの別の部分に問題があると絞り込めます。

管理者に確認すべき設定項目

自力で解決できない場合、管理者に以下の設定を確認してもらう必要があります。

  • Power Platform環境の既定のタイムゾーン: 管理センターで環境ごとに設定されているタイムゾーンが、日本時間になっているかを確認してください。ただし、この設定が直接フローに影響するかはバージョンによります。
  • ゲートウェイのタイムゾーン: オンプレミスデータゲートウェイを使用している場合、そのゲートウェイサーバーのタイムゾーンが日本時間に設定されているかを確認します。
  • テナント全体のポリシー: 一部のテナントでは、タイムゾーン変換に関連するカスタムコネクタやアクションが制限されている可能性があります。管理者にポリシーを確認してもらってください。

よくある失敗パターンと回避策

失敗パターン1: タイムゾーン名の誤記

「Tokyo Standard Time」を「Tokyo Standard Time」と正しく書かなければなりませんが、「Tokyo Standard time」と小文字にしたり、「日本標準時」と日本語で書いてしまうケースが散見されます。Power Automateではタイムゾーン名は大文字小文字を区別しますので、正確に入力してください。また、サマータイムを考慮する必要がある場合は「Tokyo Standard Time」で固定です(日本にはサマータイムがありません)。

失敗パターン2: デスクトップフローでローカル時刻をそのまま使う

デスクトップフローでは「現在の日時を取得」アクションを使うとPCのローカル時刻が取得されます。この値をそのまま日本時間として扱うと、PCのタイムゾーンが日本以外の場合に誤った時刻になります。対策として、明示的に「時刻をUTCに変換」してからconvertTimeZoneを使うか、PCのタイムゾーンが日本であることを確認してください。

失敗パターン3: データソースの時刻が混在している

SharePointリストでは、日付列に「タイムゾーン」の設定があり、そこを「UTC」にしていないとリストの表示時刻と実際の内部時刻がずれます。複数のリストやExcelファイルからデータを集める場合、すべてのソースで時刻がUTCで保存されているとは限りません。可能であれば、すべてのデータソースで日時はUTCで統一し、表示時に変換する方針を徹底してください。

よくある質問(Q&A)

Q1: convertTimeZoneアクションで「Tokyo Standard Time」と指定してもエラーになります

タイムゾーン名が正しいか、スペルミスがないかを再確認してください。また、Dynamic contentで値が空になっていないかも確認します。エラーが続く場合、アクションを一度削除して再度追加してみてください。

Q2: クラウドフローとデスクトップフローで結果が異なります

これは実行環境の違いが原因です。クラウドフローは常にUTC基準、デスクトップフローはPCのローカル時刻基準で動作します。両方の環境で同じ結果を得るには、明示的にconvertTimeZoneを使用し、Source time zoneをUTCに統一することをおすすめします。

Q3: 変換後の時刻が9時間ずれているだけでなく、さらに1時間ずれています

サマータイムの影響が考えられます。日本にはサマータイムがありませんが、データソースの国や地域によってはサマータイムを適用している場合があります。その場合は、変換元のタイムゾーンがサマータイム対応かどうかを確認し、適切なタイムゾーン名(例:「Pacific Standard Time」など)を指定してください。

まとめ

Power Automateで日本時間への変換に失敗した場合、まずはフロー内のconvertTimeZoneアクションの設定を確認し、次に実行環境(クラウドかデスクトップか)を把握することが重要です。データソースの時刻がUTCで統一されているか、デスクトップフローの場合はPCのタイムゾーンが日本になっているかも併せてチェックしてください。管理者に確認が必要な設定は早めに依頼し、テスト用の簡単なフローで検証することで原因を効率よく絞り込めます。タイムゾーン名の正確な記述と一貫した運用を心がけることで、多くのトラブルを未然に防ぐことができるでしょう。


この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。