はじめに
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()
を組み合わせて調整
状況に応じて最適な方法を選び、ワークフローを効率的に管理しましょう。
コメント