ふらりのメモ書き

Microsoft 365 , Power Platform らへん

【Power Automate】日本語で曜日を取得してみた話

最近、作成したフローで曜日を日本語で取得した際のメモ書きです。

曜日の取得

現在の日時の取得

まずは、現在の日時を取得して、日本のタイムゾーンに変換します。

convertTimeZone 関数 は、タイムスタンプのタイムゾーンを変更します。
utcNow 関数は、実行時のタイムスタンプを取得します。

convertTimeZone(utcnow(),'UTC','Tokyo Standard Time','yyyy-MM-dd HH:mm:ss')

式で入れるのがポイントです。

曜日の取得

dayOfWeek 関数を利用することで、曜日の情報を数値で取得できます。
0が日曜日、1が月曜日...といった感じです。

dayOfWeek('2022-08-31')
実行結果 実際の曜日
dayOfWeek('2022-08-28') 0
dayOfWeek('2022-08-29') 1
dayOfWeek('2022-08-30') 2
dayOfWeek('2022-08-31') 3
dayOfWeek('2022-09-01') 4
dayOfWeek('2022-09-02') 5
dayOfWeek('2022-09-03') 6

曜日の配列を準備する

createArray 関数で日曜日から始まる配列を作成します。

createArray('日', '月', '火', '水', '木', '金', '土')

実行すると配列が出来上がります。

曜日の配列を指定する

先ほど作成した配列の後に ?[0] のように記載すると、0番目を指定した結果を返すので、「日」が返ってきます。
※[]内は Int型 (整数) である必要があります。

createArray('日', '月', '火', '水', '木', '金', '土')?[0]
関数 実行結果
createArray('日', '月', '火', '水', '木', '金', '土')?[0]
createArray('日', '月', '火', '水', '木', '金', '土')?[1]
createArray('日', '月', '火', '水', '木', '金', '土')?[2]
createArray('日', '月', '火', '水', '木', '金', '土')?[3]
createArray('日', '月', '火', '水', '木', '金', '土')?[4]
createArray('日', '月', '火', '水', '木', '金', '土')?[5]
createArray('日', '月', '火', '水', '木', '金', '土')?[6]

組み合わせる

ここまでの内容を組み合わせると、今日の曜日が簡単に取得できます。
今日の日本の日時を dayofweek関数を使って、曜日を数値で取得し、その数値を使い、createArray関数で作成した配列の何番目を指定することで、曜日名を取得できます。

createArray('日', '月', '火', '水', '木', '金', '土')?[dayofweek(convertTimeZone(utcnow(),'UTC','Tokyo Standard Time','yyyy-MM-dd HH:mm:ss'))]

実行する

実行すると、実行したタイムスタンプの曜日を返します。 ※ このフローの実行は 2022-08-31 07:24:50 なので、水 で正解です。

さいごに

配列の中身を日曜日、月曜日まで含めてしまうとか、別なものに差し替えるとかすると、配列にして番号で指定する方法は、応用が利く便利な方法だと思います。