Power Automateで日付の表示形式を扱う時の備忘録をまとめました。
Power Automateの日付表示形式はISO8601形式
日時には全世界で決められたISO 8601と国際規格が決められており、当然Microsoftでも同じ規格が採用されています。
ここで少しだけISO8601について解説します。
例えば「2022年7月18日19時15分10秒」は
「2022-07-18T19:15:10Z(拡張形式)」
もしくは
「20220718T191510Z(基本形式)」
と表記されます。
日付と時間の区切りは「T」で区切り、タイムゾーンは末尾に記載することで表記します。協定世界時(UTC)であれば末尾に「Z」を付けます。
協定世界時(UTC)以外のタイムゾーンは「+」や「-」で区切って続けます。例えば「20220718T101510+09:00」のような表記となります。
秒以下は「.」を付け「20220718T191510.1234Z」のように表記します。
Power Automateで取得する時間は協定世界時の拡張形式で取得されます。
タイムゾーン | 時刻表記例 |
---|---|
協定世界時(UTC・基本形式) | 20220718T101510.1234Z |
日本標準時(JST・基本形式) | 20220718T191510.1234+09:00 |
Power Automate 協定世界時(UTC・拡張形式) | 2022-07-18T10:15:10.1234Z |
Power Automate 日本標準時(JST・拡張形式) | 2022-07-18T19:15:10.1234Z |
※Power Automateでは、日本標準時に変換しても協定世界時(UTC)を示す”Z”が付きます。
UTCは「Universal Time Corordinated」の略で、協定世界時(イギリスの標準時間)のこと。
JSTは「Japanese Standard Time」の略で日本の標準時のこと。
Power Automateで扱える表示形式
Power Automateで扱える日時書式のサンプルです。入力は「2022-07-18T18:15:10.1234Z」と仮定して下の表に記載します。
こちらのドキュメントにも記載がありますが、Power Automateで動かすとエラーが出たりするので、実際の挙動もまとめました。
表示形式 | 出力(タイムゾーンの変換) | 出力(関数) | 内容 |
---|---|---|---|
y | 2 July 2022(単体利用時) ※1 | 2 | 1桁の年。 |
yy | 22 | 22 | 下2桁 |
yyy | 2022 | 2022 | 4桁の年表示 |
yyyy | 2022 | 2022 | 4桁の年表示 |
yyyyy | 02022 | 02022 | 5桁の年表示 |
M | 7 July 18(単体利用時) ※1 | 7 July 18(単体利用時) ※1 | 月 (1 ~ 12) |
MM | 07 | 07 | 月の2桁数字表示 |
MMM | Jul | Jul | 月の略称 |
MMMM | July | July | 月の完全表示 |
d | 18 7/18/2022(単体利用時) ※1 | 18 07/18/2022(単体利用時) ※1 | 月の日にち (1 ~ 31) |
dd | 18 | 18 | 月の日にち (01 ~ 31) |
ddd | Mon | Mon | 曜日の省略名。 |
dddd | Monday | Monday | 曜日の完全名。 |
h | 6 ※1 | 6 ※1 | 12 時間形式の時間 (1 ~ 12) ※1桁時は1桁で表示。 |
hh | 06 | 06 | 24 時間形式の時間 (01 ~ 12)。 ※1桁時は2桁で表示。 |
H | 18 ※1 | 18 ※1 | 24 時間形式の時間 (0 ~ 23) ※1桁時は1桁で表示。 |
HH | 18 | 18 | 24 時間形式の時間 (00 ~ 23) ※1桁時は2桁で表示。 |
m | 15 July 18(単体利用時) ※1 | 15 July 18(単体利用時) ※1 | 分 (0 ~ 59) |
mm | 15 | 15 | 分 (00 ~ 59) |
ss | 10 | 10 | 秒 (00 ~ 59) |
t(タイムゾーンの変換) | p 18:15 p(単体利用時) | A/p ※単体ではうまく認識されません。「h:m:ss t」などで使う必要があります。 | |
t(関数) | 18:15 | 時:分 | |
tt | PM | PM | AM/PM |
gg | A.D | A.D. | 時期または時代 (年号) ※関数はA.Dの後に「.」が付きます。 |
K | Z ※1 UTCの時のみZと出力されます。 | Z ※1UTCの時のみZと出力されます。 | タイム ゾーン情報。 |
※1 単体で利用する際には頭に「%」を付け「%M」などで利用する必要があります。
Power Automateで日付の表記を変える方法
Power Automateで時刻を取得すると、「2022-07-18T10:15:10.1234Z」といった形式で取得されます。実際には日付だけの表記や時間だけの表記など、表示形式を変えて使いたい場面が多くあります。
Power Automateでは、大きく2つの方法で表示形式の変換方法があります。
まず1つ目は「タイムゾーンの変換」を使う方法です。
「基準時間」には変換したい時刻を入れ、変換元の時刻には「(UTC)協定世界時」を入れ、変換先を変換したいタイムゾーンを選びます。今回は日本の「(UTC+09:00)大阪、札幌、東京」を選びました。
書式設定文字列は選択肢にあるものでもいいですが、カスタム項目で作成すると上で紹介した書式設定が利用できます。
例えば「yyyy/MM/dd H:mm:ss」と入力すれば、よく見る「2022/07/18 20:30:02」といった形式で出力ができます。
Power Automateでは関数が使えます。”addDays”や”utcNow”などの日付の関数には、日付の表示形式を指定することができます。
例えば”addDays”ならこう。
addDays('<timestamp>', <days>, '<format>')
‘<format>’の部分で、表示形式を指定することで、日付の表示形式を自由に設定することができます。
区切り文字はなんでもいい
日付を表示する際、”/”や”:”などで区切ったりすることができますが、特に制限はなさそうです。
yyyyあああMM=**dd
こんなデタラメな区切り文字でもちゃんと日時は反映されます。
2022あああ07=**18
表示形式のサンプル
日付を表示する形式を毎回調べたりするち面倒なので、よく使いそうなものを書いておきます。
表示形式 | 入力 |
---|---|
年月日 時分秒 | yyyy/MM/dd HH:mm:ss |
年月日 | yyyy/MM/dd |
時分 | HH:mm |
曜日 | dddd |
よく使う関数との使い方
私がよく使う、関数の合せ技との日付の表示形式の使い方です。
内容 | 関数 |
---|---|
今日の日時(UTC+9) | addHours(utcNow(), 9, ‘yyyy/MM/dd HH:mm:ss’) |
今月の1日目 | addHours(utcNow(), 9, ‘yyyy/MM/01 HH:mm:ss’) |
来月(yyyy/MMの形式) | addToTime(addHours(utcNow(), 9, ‘yyyy/MM/dd HH:mm:ss’),1,’Month’,’yyyy/MM’) |
月末の日付 | addDays(addToTime(addHours(utcNow(), 9, ‘yyyy/MM/dd HH:mm:ss’),1,’Month’,’yyyy/MM’),-1,’yyyy/MM/dd HH:mm:ss’) |
今日の日時を記録したり、求めたり色々と便利です。
参考記事
ISO 8601の定義が記載されているページです。
日付と時間の国際規格について解説されている記事です。
Power Automateの関数のドキュメントです。
カスタム日時形式のドキュメントです。