Now、Today、IsToday、UTCNow、UTCToday 和 IsUTCToday 函式

適用於: 畫布應用程式 桌面流程 Dataverse 公式欄 模型導向應用程式 Power Platform CLI

傳回目前的日期和時間,並測試日期/時間值是否為今天。

注意

PAC CLI pac power-fx 命令不支援 UTCNowUTCToday,和 IsUTCToday 函式。

Description

Now 函式會傳回目前的日期和時間來作為日期/時間值。

Today 函式會傳回目前的日期來作為日期/時間值。 時間部分為午夜。 從今天午夜到明天午夜一整天的 Today 值都相同。

IsToday 函式會測試日期/時間值是否在今天午夜和明天午夜之間。 此函式會傳回布林 (truefalse) 值。

NowTodayIsToday 函式都是使用目前使用者的當地時間。

UTCNowUTCTodayIsUTCToday 函式與其非 UTC 對應部分相同,但使用的值與時區無關,並使用國際標準時間 (UTC)。

Note

  • UTCNowUTCTodayIsUTCToday 只能在 Microsoft Dataverse for Teams 公式欄中使用,而且只適用於時間獨立的欄位與值。
  • NowTodayIsToday 無法在 Dataverse for Teams 公式欄中使用,因為評估是在不知道目前使用者本地時區的情況下完成的。
    其他資訊:在 Dataverse for Teams 中使用公式資料表資料行

如需其他資訊,請參閱資料類型文件中的 Date、Time 和 DateTime使用日期和時間

動態函式

NowTodayUTCNowUTCToday 是動態函式。 這些函式會針對每個評估傳回不同的值。

在資料流公式中使用時,動態函式只會傳回重新評估出現公式時傳回不同的值。 如果公式中沒有其他變更,會在您應用程式執行過程中具有相同的值。

例如,具有 Label1.Text = Now() 的標籤控制項在應用程式有效時不會變更。 只有關閉並重新開啟應用程式才會產生新的值。

如果函式在其他項目已變更的公式部分,將會重新評估。 比方說,如果我們變更範例,形成含有 Label1.Text = DateAdd( Now(), Slider1.Value, Minutes) 的 Slider 控制項,則每次 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" ) 只擷取目前的日期,讓時間部分是午夜,並將它顯示為字串。 "07/12/2021 00:00:00"
IsToday( Now() ) 測試目前的日期和時間是否在今天午夜和明天午夜之間。 true
IsToday( Today() ) 測試目前的日期是否在今天午夜和明天午夜之間。 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 天,是否在今天午夜和明天午夜之間。 false
IsToday( DateAdd( Today(), 12 ) ) 測試目前的日期加上 12 天,是否在今天午夜和明天午夜之間。 False
Hour( UTCNow() ) 擷取 UTC 的目前日期和時間並只擷取小時,即比本地時間早 8 小時。 4
Day( UTCToday() ) 擷取 UTC 的目前只有日期並只擷取日,即比本地時間早 1 天。 12
IsUTCToday( UTCNow() ) 測試目前的日期和時間是否在今天午夜和明天午夜之間,均採用 UTC 時間。 True
IsUTCToday( UTCToday() ) 測試目前的日期是否在今天午夜和明天午夜之間,均採用 UTC 時間。 True

顯示即時更新的時鐘

  1. 新增 Timer 控制項,將其 Duration 屬性設定為 1000,並將其 Repeat 屬性設定為 True

    計時器將執行一秒鐘後自動重新開始,並繼續該模式。

  2. 將控制項的 OnTimerEnd 屬性設定為下列公式:

    Set( CurrentTime, Now() )

    每當計時器重新開始時 (經過每一秒後),此公式會將 CurrentTime 全域變數設定為 Now 函式的目前值。

    包含公式 OnTimerEnd = Set(CurrentTime, Now()) 的計時器控制項的畫面。

  3. 新增 Label 控制項,並將其Text屬性設定為下列公式:

    Text( CurrentTime, LongTime24 )

    使用 Text 函式依照您想要的方式格式化日期和時間,或僅將此屬性設定為 CurrentTime 以顯示小時和分鐘,但不顯示秒。

    包含標籤控制項且將文字屬性設定為 Text( CurrentTime, LongTime24) 的畫面。

  4. 按 F5 鍵預覽應用程式,然後點擊或點選計時器啟動它。

    標籤會持續顯示目前的時間,最詳細到秒。

    顯示四個時間值 (13: 50:22、13:50:45、13:51:03 和 13:51:25) 的四個畫面。

  5. 將計時器的 AutoStart 屬性設定為 true,並將其 Visible 屬性設定為 false

    無法看見計時器,且計時器會自動啟動。

  6. 設定畫面的 OnStart 屬性,以便 CurrentTime 變數內含有效值,如此範例所示:

    Set(CurrentTime, Now())

    只要應用程式一啟動便會顯示標籤 (在計時器執行完整的一秒鐘之前)。