最近、作成したフローで曜日を日本語で取得した際のメモ書きです。
曜日の取得
現在の日時の取得
まずは、現在の日時を取得して、日本のタイムゾーンに変換します。
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 なので、水 で正解です。
さいごに
配列の中身を日曜日、月曜日まで含めてしまうとか、別なものに差し替えるとかすると、配列にして番号で指定する方法は、応用が利く便利な方法だと思います。