はじめに
こちらの記事のPower Automate Ver です。
koruneko.hatenablog.com
参考文献
docs.microsoft.com
docs.microsoft.com
docs.microsoft.com
Power Automate での式の書き方
式を入力する箇所で、fx というマークがあるので、そこを選択すると式が入力できるようになります。
日本時間
addHours
よくみかける、 addHours
するやり方です。
JST(日本時間)はUTC(世界協定時間)に +9 した時間なので、UTC に +9 時間する方法です。
addHours(utcNow(), 9)
ただしこれだと出力結果が
2021-09-24T19:09:46.4347603Z
となってしまい、この結果を他で利用しようとした際システム的にUTCと判断されてしまいます。(末尾に Z があるため)
なので、日本時間を利用したい場合は以下方法を推奨します。
タイムゾーンを日本に変換する方法です。
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time')
このときの出力結果は
2021-09-24T19:09:46.5441398
となります。
日本時間を扱いたい場合はこの方法を利用するようにしましょう。
カスタム書式設定を使ってフォーマットを指定するパターンです。
式, 結果を記載していきます。
日付
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yyyy/MM/dd'
)
結果
2021/09/24
日付(省略系)
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yy/M/d'
)
結果
21/9/24
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yyyy/MM/dd hh:mm:ss tt'
)
結果
2021/09/24 07:09:46 PM
日時(24時間表記)
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yyyy/MM/dd HH:mm:ss'
)
結果
2021/09/24 19:09:46
日時(12時間表記)
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yyyy/MM/dd hh:mm:ss'
)
結果
2021/09/24 07:09:46
このように時間は hh
(小文字)だと12時間表記となり、 HH
(大文字)だと24時間表記になるので、利用の際は気を付けましょう。
月
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'MMMM'
)
結果
September
月(省略形)
式
Sep
結果
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'MMM'
)
曜日
英語表記
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'dddd'
)
結果
Friday
日本語表記
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'dddd',
'ja-JP'
)
結果
金曜日
曜日(省略形)
英語表記
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'ddd'
)
結果
Fri
日本語表記
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'ddd',
'ja-JP'
)
結果
金
月(数値)
式
int(
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'MM'
)
)
結果
9
日(数値)
式
int(
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'dd'
)
)
結果
24
時間(数値)
式
int(
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'HH'
)
)
結果
19
分(数値)
式
int(
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'mm'
)
)
結果
9
年号
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'gg'
)
結果
A.D.
文字1文字でフォーマットを指定するやりかたです。
このため、前述のCustom Format での書式設定に1文字だけのフォーマット(例えば h
だけなど)はエラーもしくは想定と違う結果が得られる可能性があることに注意してください。
短い日付
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'd'
)
結果
9/24/2021
長い日付
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'D'
)
結果
Friday, September 24, 2021
短い日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'f'
)
結果
Friday, September 24, 2021 7:09 PM
長い日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'F'
)
結果
Friday, September 24, 2021 7:09:46 PM
短い一般の日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'g'
)
結果
9/24/2021 7:09 PM
長い一般の日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'G'
)
結果
9/24/2021 7:09:47 PM
月日
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'm'
)
結果
September 24
* 大文字 / 小文字区別しません。
ラウンドトリップされた日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'o'
)
結果
2021-09-24T19:09:47.1066473
* 大文字 / 小文字区別しません。
RFC1123パターンの日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'r'
)
結果
Fri, 24 Sep 2021 19:09:47 GMT
* 大文字 / 小文字区別しません。
並べ替え可能な日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
's'
)
結果
2021-09-24T19:09:47
短い時刻
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
't'
)
結果
7:09 PM
長い時刻
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'T'
)
結果
7:09:47 PM
短い世界共通の日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'u'
)
結果
2021-09-24 19:09:47Z
長い世界共通の日時
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'U'
)
結果
Friday, September 24, 2021 7:09:47 PM
年日
式
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'y'
)
結果
September 2021
* 大文字 / 小文字区別しません。
2023/05/10追記
和暦の表示
以下コメントをいただきました。
参考になっているようでよかったです!
いつも助けていただいております。powerautomateで和暦を表示する方法が知りたいです。
さて、和暦の表示方法に関してですが、Power Automateで日付のフォーマットを行うにはformatDateTime関数を用いて日付のフォーマットを行うのですが、この関数による日付フォーマットはISO 8601規格に準拠しています。
en.wikipedia.org
このISO 8601規格は国際規格であり、和暦のタイムフォーマットには対応していません。
和暦にタイムフォーマットを行うには"JIS X 0301"に準拠している必要があります。
よって、Power Automateにある関数では和暦に変換することはできません。
行うのであれば自身で変換を行う必要があります。
やり方の一例としては、変換を行いたい日付がどの和暦に相当するか?を判断した後に変換を行う。
という方法があります。
元号 |
記号 |
当該元号の日付 |
対応する西暦日付 |
明治 |
明,M |
M01.01.01 |
1868-01-25 |
|
|
M45.07.29 |
1912-07-29 |
大正 |
大,T |
T01.07.30 |
1912-07-30 |
|
|
T15.12.24 |
1926-12-24 |
昭和 |
昭,S |
S01.12.25 |
1926-12-25 |
|
|
S64.01.07 |
1989-01-07 |
平成 |
平,H |
H01.01.08 |
1989-01-08 |
|
|
H31.04.30 |
2019-04-30 |
令和 |
令,R |
R01.05.01 |
2019-05-01 |
yyyy-MM-dd
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yyyy-MM-dd',
'ja-JP'
)
yyyy
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'yyyy',
'ja-JP'
)
MM
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'MM',
'ja-JP'
)
dd
formatDateTime(
convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time'),
'dd',
'ja-JP'
)
和暦変換
concat(
if(
and(
greaterOrEquals(
int(
split(
dateDifference(
'1868-01-25',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
),
lessOrEquals(
int(
split(
dateDifference(
'1912-07-29',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
)
),
concat('M', add(int(outputs('yyyy')), -1867)),
if(
and(
greaterOrEquals(
int(
split(
dateDifference(
'1912-07-30',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
),
lessOrEquals(
int(
split(
dateDifference(
'1926-12-24',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
)
),
concat('T', add(int(outputs('yyyy')), -1911)),
if(
and(
greaterOrEquals(
int(
split(
dateDifference(
'1926-12-25',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
),
lessOrEquals(
int(
split(
dateDifference(
'1989-01-07',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
)
),
concat('S', add(int(outputs('yyyy')), -1925)),
if(
and(
greaterOrEquals(
int(
split(
dateDifference(
'1989-01-08',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
),
lessOrEquals(
int(
split(
dateDifference(
'2019-04-30',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
)
),
concat('H', add(int(outputs('yyyy')), -1988)),
if(
greaterOrEquals(
int(
split(
dateDifference(
'2019-05-01',
outputs('yyyy-MM-dd')
),
':'
)[0]
),
0
),
concat('R', add(int(outputs('yyyy')), -2018)),
''
)
)
)
)
),
'-',
outputs('MM'),
'-',
outputs('dd')
)
出力例
R5-05-10
めんどくさいですね。
おわりに
以上Power Automate での日付の取り扱い纏めでした。
日付を利用したい場合の参考になれば幸いです。
これはどうやって表現すればいい?などご質問ありましたらコメント等でお気軽にどうぞー。