次の方法で共有


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

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

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

注意

PAC CLI pac power-fxコマンド は、 UTCNowUTCToday、および IsUTCToday 関数をサポートしていません。

Description

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

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

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

NowTodayIsToday 関数は、現在のユーザーのローカル時刻で動作します。

UTCNowUTCTodayIsUTCToday 関数は、UTC以外の関数と同じですが、タイム ゾーンに依存しない値で動作し、協定世界時 (UTC) を使用します。

Note

  • UTCNowUTCTodayIsUTCToday は、数式列でのみ使用可能で、時間に依存しないフィールドと値に対してのみ使用できます。 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 コントロールの値が変化するたびにラベルのテキスト プロパティが再評価されて、現在の時刻が取得されます。

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

構文

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

()

今日()

IsToday( 日時 )

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

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

UTCNow()

UTC今日()

IsUTCToday( タイムゾーンに依存しない時間 )

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

使用例

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

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

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

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

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

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

    設定(現在の時刻、現在())

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

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

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

    テキスト(現在の時刻、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(現在の時刻、現在())

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