はじめに
Power Automateを使ってワークフローを自動化するとき、現在時刻を取得する場面はよくあります。しかし、utcNow() 関数をそのまま使うとUTC(協定世界時)のタイムスタンプが返されるため、日本時間(JST: UTC+9)で表示するには適切な変換が必要です。
本記事では、Power Automateで日本時間を扱う方法を詳しく解説します。utcNow() の基本的な使い方から、日本時間に変換する方法、よりシンプルな記述方法まで網羅し、読者がスムーズに実装できるよう解説します。
utcNow() とは?
Power Automateで現在のタイムスタンプを取得する最も簡単な関数が utcNow() です。この関数を使うと、ISO 8601形式のUTC時刻が文字列で返されます。
utcNow() の出力例
この形式は YYYY-MM-DDTHH:mm:ssZ というISO 8601形式の時刻で、最後の Z は「Zulu time(UTC)」を示しています。
日本時間に変換する方法
Power Automateでは、タイムゾーンを変換する convertTimeZone() を使用すると、UTCをJST(日本標準時)に変換できます。
日本時間(JST)に変換する記述
説明
utcNow():現在のUTC時刻を取得'UTC':元のタイムゾーン(UTC)'Tokyo Standard Time':変換後のタイムゾーン(JST)'yyyy-MM-dd HH:mm:ss':表示フォーマット
出力例(JST)
このように、convertTimeZone() を使用すると、UTC時刻をJSTに変換して読みやすいフォーマットで出力できます。
convertTimeZone() を使わない方法
簡単に9時間を加算するだけなら、addHours() を使うことも可能です。
addHours() を使った記述
この方法では時刻に9時間を加算するだけなので、時刻は変更されますが "Z"(UTC表記)はそのままです。
出力例
もし "Z"(UTC表記)を取り除きたい場合は、formatDateTime() を組み合わせます。
フォーマット指定して出力する
この方法なら convertTimeZone() を使わずに、シンプルなコードでJSTを表示できます。
utcNow() を使った条件設定
Power Automateでは、特定の条件を満たしたときにワークフローを実行することが多くあります。たとえば、現在時刻が午前9時(JST)以降であるかどうかを判定したい場合、次のように記述します。
この例では、
formatDateTime(addHours(utcNow(), 9), 'HH')で現在のJSTの「時」の部分を取得greaterOrEquals(..., '09')で午前9時以降かどうかを判定trueなら「営業開始」、falseなら「営業時間外」を返します
どの方法を使うべきか?
| 方法 | 記述のシンプルさ | フォーマット調整 | タイムゾーン変換 |
|---|---|---|---|
utcNow() | ◎ | × | × |
addHours(utcNow(), 9) | ○ | × | △(単純加算のみ) |
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time', 'yyyy-MM-dd HH:mm:ss') | △ | ◎ | ◎ |
formatDateTime(addHours(utcNow(), 9), 'yyyy-MM-dd HH:mm:ss') | ○ | ◎ | △ |
- 手軽に9時間足すだけなら
addHours() - フォーマット調整や読みやすさを考えるなら
formatDateTime()を組み合わせる - 公式なタイムゾーン管理をしたいなら
convertTimeZone()を使うのがベスト

まとめ
Power Automate で現在時刻を取得する utcNow() は、そのままでは UTC で表示されます。日本時間(JST)に変換するには、
convertTimeZone()を使う(推奨)addHours()を使う(簡易)formatDateTime()を組み合わせて調整
状況に応じて最適な方法を選び、ワークフローを効率的に管理しましょう。


コメント