【コピペOK】Power Automate formatDateTime 日付フォーマット変換一覧とJST対応

Power Automateで日付変換しようとして「あれ?月が大文字だっけ?」って毎回調べるのは大変…

この記事では、formatDateTime関数でよく使うフォーマットパターンと、ハマりがちな日本時間(JST)への変換方法をまとめました。

スポンサーリンク

日付の書式(フォーマット)を変換する関数:formatDateTime

formaDateTime関数は、指定した日時文字列の「書式」を変更する関数。

// 第1引数の時間を第2引数の書式に変換。
formatDateTime('【変換したい日付】', '【フォーマット(任意)】')
よく使う書式指定のパターンはこれ。
用途・形式書式文字列 (コピペ用)結果例備考
標準的な日付yyyy/MM/dd2026/01/05よく使うやつ
日時 (24H)yyyy/MM/dd HH:mm:ss2026/01/05 09:05:07ログ出力などに
ファイル名用yyyyMMdd_HHmm20260105_0905禁止文字(/,:)を除去
日本語 (0埋め)yyyy年MM月dd日2026年01月05日帳票などカチッとした時
日本語 (自然)yyyy年M月d日2026年1月5日メール本文などに
曜日付きyyyy/MM/dd (ddd)2026/01/05 (Mon)日本語曜日は変換が必要※
ISO8601形式yyyy-MM-ddTHH:mm:ss2026-01-05T09:05:07SharePoint更新などで必須
12時間表記yyyy/MM/dd hh:mm tt2026/01/05 09:05 AMAM/PMをつけたい時
英語形式dd MMM yyyy05 Jan 2026海外とのやり取りに

以下注意点!

  • 月は「MM」、分は「mm」(逆にすると月が分になる)
  • 24時間表記(15時など)にしたいなら「HH」を使うこと
    ※「hh」だけだと15時が「03時」と表示されて、昼か夜かわからない
例えば日本の時間をカスタムの書式にしたい場合は以下のように書く。

// UTC時間をconvertFromUtcで日本時間に変えてから、書式を変更している。
formatDateTime(convertFromUtc(utcNow(),'Tokyo Standard Time'), 'yy年MM月dd日のHH時mm分ss秒で曜日はdddd')

// OK : convertFromUtcの第3引数で書式を指定する方法でもOK。
convertFromUtc(utcNow(),'Tokyo Standard Time', 'yy年MM月dd日のHH時mm分ss秒で曜日はdddd')

// NG : これは9時間(UTCと日本時間の時差)ずれる
formatDateTime(utcNow(), 'yy年MM月dd日のHH時mm分ss秒で曜日はdddd')

すると結果は、こんな感じ。

ちなみに、utcを日本時間に直すところは「addHours」でもいいけど、夏時間に対応できない点に注意。
※日本はいいけど、サマータイムがある海外拠点の時間を出すときに計算が狂う。

// △ : 日本(JST)固定なら動くけど、ちょっと力技
formatDateTime(addHours(utcNow(), 9), 'yy年MM月dd日のHH時mm分ss秒で曜日はdddd')

タイムゾーンを変更しつつ、書式を変更できる関数一覧

協定世界時 (UTC)から指定タイムゾーンへ変換:convertFromUtc

convertFromUtc('【変換したい日付】', '【変換先のタイムゾーン名】', '【フォーマット(任意)】')

第1引数の時間をUTC時間として、第2引数のタイムゾーンに変える関数。第3引数の書式は任意で、これを指定してあげれば日付の表示形式を変更できる。

例えばこんな感じに指定すると。

convertFromUtc(utcNow(),'Tokyo Standard Time','G')
UTCを日本時間に変換できる(UTC+9時間)

あるタイムゾーンから別のタイムゾーンへ変換:convertTimeZone

convertTimeZone('【変換したい日付】', '【変換元のタイムゾーン名】', '【変換先のタイムゾーン名】', '【フォーマット(任意)】')

第1引数の時間を、第2引数のタイムゾーンから第3引数のタイムゾーンに変える関数。第4引数の書式は任意で指定可能。

例えば、こんな感じに指定すると、

convertTimeZone('2021-01-27T16:45:00', 'Tokyo Standard Time', 'Hawaiian Standard Time', 'G')

日本時間からハワイの時間へと変換できる。

(あんま使わない)あるタイムゾーンから協定世界時 (UTC)へ変換:convertToUtc

convertToUtc('【変換したい日付】', '【変換元のタイムゾーン名】', '【フォーマット(任意)】')

第1引数と第2引数で指定した場所の時間を、UTCへ変換する。第3引数の書式は任意で指定可能。

使い方は今までの関数とほとんど変わらないので、省略。

日時を変更しつつ、書式を変更できる関数まとめ

指定した日時に時間や日数を足したり引いたり:addToTime, subtractFromTime

addToTime('【変換したい日付】', interval, 'timeUnit', '【フォーマット(任意)】')
subtractFromTime('【変換したい日付】', interval, 'timeUnit', '【フォーマット(任意)】')

第1引数の時間に第2引数と第3引数で指定した時間を足したり引いたりする。第4引数の書式は任意。

第2引数はinteger(整数)で指定し、第3引数を下から選ぶ。

  • ‘Second’
  • ‘Minute’
  • ‘Hour’
  • ‘Day’
  • ‘Week’
  • ‘Month’
  • ‘Year’

例えば日本の現在時刻に1週間足したいときはこんな感じ。

addToTime(convertFromUtc(utcNow(),'Tokyo Standard Time'),1,'Week','d')

すると結果はこんな感じになる。

ちなみに、addDaysとかaddHoursとかは、addToTime関数の第3引数をなくした感じで、使い方はほぼ一緒。

現在の日時に時間や日数を足したり引いたり:getFutureTime, getPastTime

getFutureTime(interval, timeUnit, '【フォーマット(任意)】')
getPastTime(interval, 'timeUnit', '【フォーマット(任意)】')

これは、addToTimeとかsubtractFromTimeで第1引数で指定した日時を省略し、現在の時間に足したり引いたりする関数。

使い方はaddToTimeとかとほとんど変わらないので、使用例は省略。

今回は紹介しなかったけれど、dayOfWeek関数とかもけっこう便利なのでそのうち紹介します。

関連記事

補足:日付のタイムゾーンと書式

日付や日時を考える際の、表示書式やタイムゾーンについて簡単に説明。

タイムゾーン

日付や日時を考える際に、時差も考慮に入れるときはこのタイムゾーンを使う

協定世界時(UTC)を基準として、国ごとにこんな感じで時間はずれる。

  • 協定世界時(UTC):世界の基準となる時刻
  • 日本:協定世界時+9時間
  • 米国東部:協定世界時-5時間
  • 米国太平洋:協定世界時-7時間
  • 中央ヨーロッパ:協定世界時+1時間

※サマー時間は考えていません。

現時刻を取得するutcNow関数はUTC時間を返してくるので、日本の現在時刻を知りたいときはこの「タイムゾーンを指定」するか、「utcNow関数に+9時間」して時間を求める。

タイムゾーンを指定するときは↓のサイトの値(文字列)で指定する。
Microsoft Time Zone Index Values

※おまけ:
UTCって昔地理で習ったグリニッジ天文時(GMT)とイコールかと思っていたけど、ちょっと違うらしい。
昔はGMTとイコールだったんだけど、現在はセシウム原子時計の時刻にうるう秒を換算したのがUTCとのこと

日時の書式

書式は「2021-01-27」とか「27/01/2021 13:45:00」とか、日時や日付をどういう形式で表示したいかを指定するときに使う。

書式には「既に定義してくれている書式」があって、この定義に自分の使いたい書式がない場合はカスタムで定義を作る。

既に定義してくれている書式を使って「2009-06-15T13:45:30」を変換しすると、以下のようになる。

  • 短い形式の日付:6/15/2009
  • 完全な日付を短い形式:Monday, June 15, 2009 1:45 PM
  • 一般の日付を長い形式:6/15/2009 1:45:30 PM
  • RFC1123 パターン:Mon, 15 Jun 2009 13:45:30 GMT

カスタムで書式を指定して「2009-06-15T13:45:30」を変換すると、以下のようになる。

  • ‘yyyyMMdd’:20090615
  • ‘yyyy-MM-dd-HH:mm:ss’:2009-06-15-13:45:30
  • ‘yyMMdd(ddd)’:090615(Mon)

コメント

タイトルとURLをコピーしました