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

Azure,Logic Apps

Azure Logic Apps(ロジックアプリ)のワークフローにおける日付、時刻、タイムゾーン、曜日の扱い方です。
アクションや式関数を利用した取得、計算、変換などの方法を確認しています。

現在時刻の取得からタイムゾーンの変更、時間の加算・減算、フォーマット変更方法までを確認、紹介しています。

※本記事では、一部を除きAzure Logic Apps(ロジックアプリ)をLogic Appsと記載しています。

スポンサーリンク

Logic Appsワークフローで日付、時刻、曜日を取得して利用する方法

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

取得方法は2種類

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

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

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

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

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

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

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

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

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

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

現在時刻を取得
”変数の初期化”で名前と種類を設定します。

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

utcNow

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

取得した現在時刻をワークフローで利用した場合の例

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

現在時刻をワークフローで利用した場合の例

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

現在の時刻を指定します。
変数に現在時刻の値を設定できます。

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

”日付と時刻”のコネクタには、タイムゾーンの変換についても用意されています。
今回は現在の時刻(UTC)を日本時間(JST)に変換します。

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

基準時間と同じ”世界共通の並び替え可能な日時パターン”で出力します。

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

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

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

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

convertFromUtc() を利用すると、タイムゾーンの変更ができます。
式関数には “convertFromUtc(utcNow(), 'Tokyo Standard Time’)” と設定します。
utcNow() で現在時刻 (UTC) を取得後、日本時間 (JST) に変更しています。

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は、(指定時刻, 間隔, 時間単位)を指定します。
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のシークレットを参照する手順については、こちらで紹介しています。
この中で取得した値を非表示(セキュリティで保護された出力)にする方法についても紹介しています。

スポンサーリンク