Logic Appsの日付、時刻、タイムゾーン、曜日に関するアクションや関数

Azure,Logic Apps

Azure Logic Appsのワークフローで日付、時刻、タイムゾーン、曜日を扱う方法の紹介です。
アクションや式関数を利用した取得、計算、変換などの方法を確認しています。

現在時刻の取得から、タイムゾーン変更、時間の加算減算、フォーマット変更方法など実例を交えて紹介しています。

スポンサーリンク

Logic Appsワークフローで日付、時刻、曜日を取得

設定から実行結果を確認してみます。
実行結果は2022年8月20日18時36分(日本時間)に実施した内容です。

取得方法は2種類

Logic Appsのワークフローで日付や時刻などを取得する方法は2種類あります。

    • 日付と時刻のコネクタを使う
    • 式関数を使う

式関数についてはこちらを参考に進めています。

Azure Logic Apps および Power Automate のワークフロー式関数のリファレンス ガイド(日付と時刻関数)

今回はそれぞれの方法で設定、取得出来る値を確認してみます。

現在時刻を取得(日付と時刻コネクタ)

”日付と時刻”のコネクタ使って現在の時間を取得します。

現在時刻を取得
検索欄で日付と入力します。
日付と時刻のアクションのリストが表示されます。
現在の時刻を選択します。
特に設定はありません。アクションとして配置するだけで現在の時刻が取得出来ます。
実行結果を確認します。
UTCで現在時刻が取得出来ています。

現在時刻を取得(式関数(utcNow))

式関数(utcNow)を利用して現在時刻を取得できます。

utcNow
”変数の初期化”で名前と種類を設定します。

現在時刻を取得する場合には式関数utcNow()を使います。

utcNow

実行結果を確認します。
UTCで現在時刻が取得出来ています。

取得した現在時刻をワークフローで使う

取得した現在の時刻をワークフローで利用する場合は動的なコンテンツで指定します。

現在時刻を設定する例

”変数の初期化”で設定した例です。
値の欄で動的コンテンツを指定します。

現在の時刻を指定します。
これで変数に現在時刻の値を設定出来ます。

タイムゾーン(Time Zone)の変換(日付と時刻コネクタ)

”日付と時刻”のコネクタにはタイムゾーンの変換についても準備されています。

タイムゾーンの変換
タイムゾーンの変換を選択します。
  • 基準時間:変換元となる時間
  • 書式設定文字列:出力時の日時フォーマット
  • 変換元のタイムゾーン:基準時間のタイムゾーン
  • 変換後のタイムゾーン:変換後のタイムゾーン

今回は現在の時刻(UTC)を日本時間(JST)に変換します。
基準時間と同じ”世界共通の並び替え可能な日時パターン”で出力します。

書式設定文字列には色々なフォーマットが指定できます。
実行結果を確認します。
出力を確認するとUTCで取得した時刻がJSTに変換されている事が分かります。

タイムゾーン(Time Zone)の変換(式関数(convertFromUtc))

式関数(convertFromUtc)を利用するとタイムゾーンを変換できます。

タイムゾーンの変更
”変数の初期化”で名前と種類を設定します。

convertFromUtc()を利用するとタイムゾーンの変更が出来ます。
utcNow()で現在時刻(UTC)を取得後、日本時間(JST)に変更してみます。

式関数には”convertFromUtc(utcNow(),’Tokyo Standard Time’)”と設定します。

convertFromUtc

実行結果を確認します。
現在時刻が日本時間(JST)で取得できています。

現在の曜日を取得(式関数(dayOfWeek))

式関数を利用して曜日を取得できます。
”日付と時刻”のコネクタには曜日の取得に関するアクションはありません。

曜日の取得
”変数の初期化”で名前と種類を設定します。

dayOfWeekを利用すると曜日の取得できます。
現在の時刻(日付と時刻のアクションを利用)を使用して今日の曜日を取得します。

式関数には”dayOfWeek(body('現在の時刻’))”と指定します。

dayOfWeek

変数値を使う場合はvariables('変数名’)で指定します。
今回は名前に現在時刻と設定しいるので、式関数は”dayOfWeek(variables('現在時刻’))”となります。

 

 
 

実行結果を確認します。
曜日が数値で出力されます。

日曜日から0で始まります。土曜日は6になります。

平日のみワークフローを実行する方法についてはこちらで紹介しています。
dayOfWeek関数を利用しています。

—広告—

Logic Appsワークフローで日時の計算

日時の計算について設定から実行結果を確認します。
実行結果は2022年8月20日18時36分(日本時間)に実施した内容です。

現在時刻から加算、減算(日付と時刻コネクタ)

日付と時刻コネクタには時刻の加減算のアクションが用意されています。
現在時刻から日付や時間を加算、減算した値が取得できます。

過去の時間や未来の時間を取得

”日付と時刻”のコネクタには以下のアクションが用意されています。

  • 過去の時間の取得
    • 現在時刻から指定した日付や時間を減算する
  • 未来の時間の取得
    • 現在時刻から指定した日付や時間を加算する
間隔と時間単位が指定できます。
時間帯では月、週、日、時間、分、秒の指定が出来ます。
1日前の日時を取得する場合は間隔に1、時間単位に日を指定します。
1日後の日時を取得する場合は間隔に1、時間単位に日を指定します。

”過去の時間の取得”の実行結果を確認します。
出力を確認すると1日前の日付が取得されている事が分かります。

”未来の時間の取得”の実行結果を確認します。
出力を確認すると1日後の日付が取得されている事が分かります。

現在時刻から加算、減算(式関数)

時刻の加減算を行う式関数が用意されています。
現在時刻から日付や時間を加減算した値を取得できます。

現在時刻から加算
加算の場合にはgetFutureTimeを使います。

getFutureTime

getFutureTime(間隔,加算する時間単位)の指定になります。
現在時刻に1日追加する場合は”getFutureTime(1, 'day’)”となります。
実行結果を確認します。
値を確認すると1日後の日付が取得されている事が分かります。

減算の場合です。

現在時刻から減算
減算の場合にはgetPastTimeを使います。

getPastTime

getPastTime(間隔,減算する時間単位)の指定になります。
現在時刻から1時間減算する場合は”getPastTime(1,’Hour’)”となります。
実行結果を確認します。
値を確認すると1時間前の時間が取得されている事が分かります。

指定した時間からの加算、減算(日付と時刻コネクタ)

指定した時刻からの加算、減算も出来ます。
今回は現在時刻を使っていますが、指定した時刻は現在時刻である必要はありません。

時間からの加算、減算

”日付と時刻”のコネクタには以下のアクションが用意されています。

  • 時間からの減算
    • 指定した時刻から日付や時間を減算する
  • 時間への取得
    • 指定した時刻から日付や時間を加算する
”時間への追加”の場合です。
基準時間から指定した間隔、時間単位を加算します。
例は現在時刻から1日後の指定の場合です。
”時間からの減算”の場合です。
基準時間から指定した間隔、時間単位を減算します。
例は現在時刻から1日前の指定の場合です。

”時間への追加”の実行結果を確認します。
出力を確認すると指定した基準時間(現在時刻)から1日後の日付が取得されている事が分かります。

”時間からの減算”の実行結果を確認します。
出力を確認すると指定した基準時間(現在時刻)から1日前の日付が取得されている事が分かります。

指定した時間からの加算、減算(式関数)

指定した時間に日数や時間を加減算する式関数も用意されています。
加算する時間単位を追加します。

    • addDays:指定した時間に日数を加算します
    • addHours:指定した時間に時間を加算します
    • addMinutes:指定した時間に分を加算します
    • addSeconds:指定した時間に秒を加算します

addToTimeを使っても同様の事ができます。

時間からの加算
指定時刻を現在時刻とします。
加算時間は1時間とします。

時間の加算なのでaddHoursを利用します。
addHours(指定時刻, 加算時間)の指定になります。
現在時刻から1時間追加の場合は”addHours(utcNow(), 1)”と指定します。

addHours

addToTimeは(指定時刻,間隔,時間単位)の指定になります。
addToTimeを使って1時間加算する場合は、addToTime(utcNow(), 1, 'Hour’)となります。

addToTime

実行結果を確認します。
値を確認すると1時間後の時間が取得されている事が分かります。

時間からの減算も同様にaddHoursを使って出来ます。
subtractFromTimeを使っても出来ます。

時間からの減算
指定時刻を現在時刻とします。
減算時間は1時間とします。
時間からの減算もaddHoursを使って出来ます。
間隔を-1とします。

subtractFromTimeは(指定時刻,間隔,時間単位)の指定になります。
subtractFromTimeを使って1時間減算する場合は、subtractFromTime(utcNow(), 1, 'Hour’)となります。

subtractFromTime

実行結果を確認します。
値を確認すると1時間前の時間が取得されている事が分かります。

式関数を利用して開始時間や開始日付のみを取得(分や時間を切り捨てる)

式関数を使って時間や分の単位を切り捨てる事が出来ます。

    • startOfDay:指定した日時の開始日時を出力します
    • startOfHour:指定した日時の開始時間を出力します
    • startOfMonth:指定した日時の開始月日付を出力します
開始時刻を取得する
現在時刻の開始時刻を取得します。

startOfHour(指定時刻)の指定になります。
今回は変数(現在時刻)を利用しています。

実行結果を確認します。
ワークフロー実行時に指定した時刻は現在時刻の9:36(UTC)になります。
この場合にstartOfHourを使って取得された値は開始時刻である9:00になります。

日付でも同じ事が出来ます。

開始日付を取得
現在時刻の開始日付を取得します。

startOfDay(指定時刻)の指定になります。
今回は変数(現在時刻)を利用しています。

実行結果を確認します。
ワークフロー実行時に指定した時刻は現在時刻の8月20日の9:36(UTC)になります。
この場合にstartOfDayを使って取得された値は開始日付である8月20日の00:00になります。

startOfDayとaddDaysを組み合わせて使うと前日の開始日付を取得する事も出来ます。

前日の開始日付を取得
startOfDayを使って前日の開始日付を取得してみます。
startOfDay(addDays(utcNow(), -1))と指定します。
addDays(utcNow(), -1)で指定時刻を現在時刻から1日減算しています。
実行結果を確認します。
前日の開始日付である8月19日00:00が値として取得されている事が確認出来ます。

タイムゾーンの変更を使って日付のフォーマット変更(日付と時刻コネクタ)

タイムゾーンの変更のアクションを使って日付のフォーマット変更が出来ます。

日付のフォーマット変更
フォーマット変更は書式設定文字列の指定を使います。
書式設定文字列に短い形式の日付パターンを指定してみます。

実行結果を確認します。
入力値のbaseTimeは"2022-08-20T09:36:18.8599907Z"となっています。
出力結果を見ると"8/20/2022″となっており、フォーマット変更出来ている事が分かります。

式関数(formatDateTime)を使って日付のフォーマット変更

式関数(formatDateTime)を使うと出力フォーマットが指定できます。

日付のフォーマット変更
日付のフォーマット変更の場合にはformatDateTimeを使います。

formatDateTime

formatDateTime(指定時刻,出力フォーマット)の指定になります。
utcNowを使って現在時刻を指定時刻として設定してみます。

実行結果を確認します。
出力結果を見ると"2022/08/22″となっており、指定したフォーマット通りの値が得られている事が分かります。

最後に

今回はLogic Appsのワークフローで使う日時のアクションについて纏めてみました。
”日付と時刻”のコネクタ内にあるアクションや式関数を使う事で様々な値が取得出来る事が分かりました。
引き続き今後も色々試してみたいと思います。

Logic Appsのワークフロー内のアクションでサブスクリプションIDを取得する方法についてはこちらに纏めています。

Logic Appsのワークフロー内でKey Vaultのシークレットを参照する手順についてはこちらに纏めています。
この中で取得した値を非表示(セキュリティで保護された出力)にする方法についても紹介しています。

スポンサーリンク