【PowerAutomate】日付を使った制御を取り入れる際の注意点
2026.11.11
本日はタイトル通り、PowerAutomateにて日付を使った処理を実装する際の注意点を解説します。
「更新日時が7日以上のドキュメントを別のフォルダに移動する」処理を実現するという実践的な例を用いてご説明いたします。
この処理のフローの流れは、以下のようになります。

① 特定のドキュメントライブラリ内に存在するファイルのプロパティを取得
② それぞれに対して、プロパティを取得し、更新日を参照
③ 「更新日」が、現在の日付の7日より前なら、ファイルを移動する
この③の処理について解説します。

以下の式を記述し、画面左側で
formatDateTime(addDays(utcNow(),-7), ‘yyyy-MM-dd’)
式の意味は以下です。
・formatDateTime(<a>,<b>)…<a>で指定した日時を<b>の形式で出力
・addDays(<a>,<b>)…<a>で指定した日時の<b>日後を出力
・utcNow()…現在の日付、時刻を取得(UTC)
つまり、今回は「現在日付の-7日後、すなわち7日前を返す」式になります。
これを実装するうえで注意すべき点が2つあります。
1点目は、参照する対象の標準時です。
先ほどの式の意味を見た時点で「ん?UTCでいいの?」と違和感を覚えた鋭い方もいらっしゃるかもしれませんね。
テスト実行をしてみて、今回参照する対象であるファイルのプロパティ(「② それぞれに対して、プロパティを取得し、更新日を参照」のアクション実行結果)を見てみます。下記の画面で「未加工の出力を表示する」をクリック。

すると、「”body”」内に「”Modified”」を発見。これが今回の参照対象であるアイテムの更新日時です。

SharePointにて、当該ドキュメントライブラリ内でID:15のアイテムのプロパティを確認すると以下のようになっていました。

心当たりのある時刻でした(笑)
ここから、更新日時は内部的にはUTCで持っており、ユーザに表示する際はアカウントのタイムゾーンに合わせて変換して表示していることがわかります。すなわち、PowerAutomateの数式ではUTCから特に変換する必要はなかったということですね。
2点目は、参照する対象の日付の形式です。
formatDateTime関数は、yyyy-MM-ddだけでなくyyyy/MM/dd、MMMM dd, yyyy, HH:mmなど、さまざまな形式を指定することができます。先ほどの画像を参照すると、日付はyyyy-MM-dd形式であることがわかります。
(筆者は一度「yyyy/MM/dd」形式を指定して正常に日時の比較ができずにエラーを出力させた経験があります)
こちらも、1点目と同様テスト実行から無加工の出力を見て参照する対象がどのような形式で日付を持っているかを確認するようにしましょう。
いかがでしたでしょうか?今回の記事も少しでも皆様のお役に立てることを願っております。
