Now、Today、IsToday、UTCNow、UTCToday、IsUTCToday 関数

適用先 : キャンバス アプリ デスクトップ フロー Dataverse 数式列 モデル駆動型アプリ Power Platform CLI

現在の日付と時刻を返し、日付/時刻値が今日かどうかをテストします。

注意

PAC CLI pac power-fx コマンド は、UTCNowUTCTodayIsUTCToday 機能に対応していません。

Description

Now 関数は、現在の日付と時刻を日付/時刻値として返します。

Today 関数は、現在の日付を日付/時刻値として返します。 時刻部分は、午前 0 時です。 Today は、今日の午前 0 時から翌日の午前 0 時までの 1 日を通して同じ値を保持します。

IsToday 関数は、日付/時刻値が今日の午前 0 時から翌日の午前 0 時の間の値になっているかどうかをテストします。 この関数は、ブール値 (true または false) を返します。

NowToday、および IsToday の関数は、現在のユーザーの現地時間で機能します。

UTCNowUTCTodayIsUTCToday 関数は、UTC 以外のカウンター パートと同じですが、タイム ゾーン非依存値を処理し、協定世界時 (UTC) を使用します。

Note

  • UTCNowUTCToday、とIsUTCToday は、Microsoft Dataverse for Teams 数式列でのみ、そして時間に依存しないフィールドと値に対してのみ利用可能です。
  • NowToday、および IsToday は、評価は現在のユーザーの現地時間のナレッジなしでおこなわれることから Dataverse for Teams 式列では利用できません。
    詳細: Dataverse for Teams で数式テーブルの列を操作する

詳細については、データ型ドキュメントの Date、Time、DateTime および 日付と時刻の操作 も参照してください。

Volatile 関数

NowTodayUTCNow、および UTCToday は揮発性関数です。 これらの関数は、評価ごとに異なる値を返します。

データ フロー数式で使用すると、揮発性の関数は、それが表示される数式が再評価される場合に別の値を返すだけです。 数式で何も変更されていない場合、アプリの実行全体を通じて同じ値を返します。

たとえば、Label1.Text = Now() であるラベル コントロールは、アプリがアクティブな間は変化しません。 アプリを閉じてからもう一度開いた場合にのみ、新しい値が返ります。

関数は、他の何かが変更された数式の一部である場合に再評価されます。 たとえば、Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ) であるスライダー コントロールを含むように例を変更した場合、Slider コントロールの値が変化するたびにラベルのテキスト プロパティが再評価されて、現在の時刻が取得されます。

動作の数式 を使用すると、動作の数式が評価されるたびに、揮発性関数が評価されます。 例については、以下を参照してください。

構文

ユーザーのローカル タイムを使用する

Now()

Today()

IsToday( DateTime )

  • DateTime - 必須。 テストする日付/時刻値。

協定世界時 (UTC) を使用する

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime - 必須。 テストするタイムゾーンに依存しない日付/時刻の値。

使用例

このセクションの例では、現在の時刻は 2021 年 7 月 11 日午後 8 時 58 分 、太平洋標準時 (UTC-8) で、言語は en-us です。

設定 結果
Text( Now(), "mm/dd/yyyy hh:mm:ss" ) ユーザーのタイムゾーンの現在の日付と時刻を取得し、文字列として表示します。 "07/11/2021 20:58:00"
Text( Today(), "mm/dd/yyyy hh:mm:ss" ) 現在の日付のみを取得し、時刻は午前 0 時としたまま、これを文字列として表示します。 "07/12/2021 00:00:00"
IsToday( Now() ) 現在の日付と時刻が、今日の午前 0 時から翌日の午前 0 時の間であるかどうかをテストします。 True
IsToday( Today() ) 現在の日付が、今日の午前 0 時から翌日の午前 0 時の間であるかどうかをテストします。 True
Text( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) 現在の日付と時刻を取得し、その結果に 12 日を追加し、文字列として表示します。 "07/23/2021 20:58:00"
Text( DateAdd( Today(), 12 ), "mm/dd/yyyy hh:mm:ss" ) 現在の日付を取得し、その結果に 12 日を追加して、文字列として表示します。 "07/23/2021 00:00:00"
IsToday( DateAdd( Now(), 12 ) ) 現在の日付と時刻に 12 日を加算した日時が今日の午前 0 時から翌日の午前 0 時の間であるかどうかをテストします。 false
IsToday( DateAdd( Today(), 12 ) ) 現在の日付に 12 日を加算した日付が今日の午前 0 時から翌日の午前 0 時の間であるかどうかをテストします。 false
Hour( UTCNow() ) UTC で現在の日付と時刻を取得し、現地時間より 8 時間進んでいる時間のみを抽出します。 4
Day( UTCToday() ) UTC で現在の日付のみを取得し、現地時間より 1 日進んだ日付を抽出します。 12
IsUTCToday( UTCNow() ) 現在の日付と時刻が、今日の午前 0 時から翌日の午前 0 時の間であるかどうかをすべて UTC 時間でテストします。 true
IsUTCToday( UTCToday() ) 現在の日付と時刻が、今日の午前 0 時から翌日の午前 0 時の間であるかどうかをすべて UTC 時間でテストします。 true

リアルタイムで更新される時計を表示する

  1. Timer コントロールを追加し、その Duration プロパティを 1000 に設定し、Repeat プロパティを true に設定します。

    タイマーは 1 秒間実行し、自動的に最初からやり直し、そのパターンを続けます。

  2. コントロールの OnTimerEnd プロパティを次の式に設定します:

    Set( CurrentTime, Now() )

    タイマーが (1 秒ごとに) 最初からやり直すたびに、この式は CurrentTime グローバル変数に Now 関数の現在の値を設定します。

    数式 OnTimerEnd = Set(CurrentTime, Now()) でのタイマー コントロールを含む画面。

  3. Label コントロールを追加し、その Text プロパティを次の数式に設定します。

    Text( CurrentTime, LongTime24 )

    Text 関数を使用して日付と時刻の形式を設定するか、またはこのプロパティに CurrentTime のみを設定して秒を除いた時間と分を表示します。

    Text プロパティが Text( CurrentTime, LongTime24) に設定されたラベル コントロールを含む画面。

  4. F5 キーを押してアプリをプレビューした後、クリックまたはタップしてタイマーを開始します。

    ラベルは、秒の単位まで現在時刻を示し続けます。

    4 つの時刻値 (13:50:22、13:50:45、13:51:03、13:51:25) を表示する 4 つの画面。

  5. タイマーの AutoStart プロパティを true に設定し、Visible プロパティを false に設定します。

    タイマーは非表示であり、自動的に開始されます。

  6. 次の例のように、画面の OnStart プロパティを、有効な値を保持する CurrentTime 変数に設定します。

    Set(CurrentTime, Now())

    アプリが起動するとすぐに (タイマーがまるまる 1 秒動く前に)、ラベルが表示されます。