Now、Today、IsToday、UTCNow、UTCToday、IsUTCToday 函数
适用于: 画布应用程序 桌面流 Dataverse 公式列 模型驱动应用 Power Pages Power Platform CLI
返回当前日期和时间,以及测试某个日期/时间值是否为今天。
备注
PAC CLI pac power-fx 命令 不支持 UTCNow、 UTCToday 和 IsUTCToday 函数。
描述
Now 函数以日期/时间值返回当前日期和时间。
Today 函数以日期/时间值返回当前日期。 时间部分为午夜。 Today 在一天中(从今天的午夜到明天的午夜)具有相同的值。
IsToday 函数测试某个日期/时间值是否介于今天午夜和明天午夜之间。 此函数返回布尔(true 或 false)值。
Now、 Today 和 IsToday 函数使用当前用户的本地时间。
UTCNow、 UTCToday 和 IsUTCToday 函数与非 UTC 函数相同,但使用与时区无关的值并使用协调世界时(UTC)。
备注
- UTCNow、 UTCToday 和 IsUTCToday 仅在公式列中可用 Microsoft Dataverse for Teams ,并且仅适用于与时间无关的字段和值。
- Now、 Today 和 IsToday 在 Dataverse for Teams 公式列中不可用,因为评估是在不知道当前用户的本地时区的情况下完成的。
详细信息:使用 Dataverse for Teams 中的公式表列
有关详细信息,请参阅数据类型文档中的日期、时间和日期/时间和使用日期和时间。
易失函数
现在、 今天、 UTCNow 和 UTCToday 是易失函数。 每次计算时,这些函数会返回不同的值。
在数据流公式中使用易失函数时,如果对含有该函数的公式进行重新计算,该函数会返回不同的值。 如果公式中没有任何其他更改,在应用执行期间,它会具有相同的值。
例如,如果一个 Label 控件设为 Label1.Text = Now(),则应用处于活动状态时,该控件不会改变。 只有关闭和重新打开应用会得到新值。
如果包含该函数的公式的其他内容发生了任何更改,会导致该函数进行重新计算。 例如,如果将示例更改为包含一个 Slider 控件,即设为 Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ),则每当 Slider 控件的值发生更改时会检索当前时间,标签的 text 属性会进行重新计算。
如果在行为公式中使用易失函数,则每当计算该公式时,也会计算该函数。 请参阅下文查看示例。
语法
使用用户的本地时间
现在()
今天()
IsToday( 日期时间 )
- DateTime - 必需。 要测试的日期/时间值。
使用协调世界时 (UTC)
UTCNow()
UTCToday()
IsUTCToday( 时区独立时间 )
- TimeZoneIndependentDateTime - 必需。 要测试的时区无关日期/时间值。
示例
在本部分的示例中,当前时间是 2021 年 7 月 11 日的晚上 8:58,时区是太平洋时区 (UTC-8),语言是 en-us。
公式 | 说明 | 结果 |
---|---|---|
文本(Now(),“mm/dd/yyyy hh:mm:ss”) | 检索用户时区中的当前日期和时间,并将其显示为字符串。 | "07/11/2021 20:58:00" |
文本(Today(),“mm/dd/yyyy hh:mm:ss”) | 仅检索当前日期,时间部分为午夜,并将其显示为字符串。 | "07/12/2021 00:00:00" |
IsToday(现在()) | 测试当前日期和时间是否介于今天午夜和明天午夜之间。 | 真 |
是今天(今天) | 测试当前日期是否介于今天午夜和明天午夜之间。 | 真 |
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 天是否介于今天午夜和明天午夜之间。 | 假 |
IsToday(DateAdd(Today(),12)) | 测试当前日期加 12 天是否介于今天午夜和明天午夜之间。 | 假 |
小时(UTCNow()) | 检索 UTC 格式的当前日期和时间并仅提取小时,此小时比本地时间早 8 小时。 | 4 |
天(UTCToday()) | 仅检索 UTC 格式的当前日期并提取日,此日比本地时间早 1 天。 | 12 |
IsUTCToday(UTCNow()) | 测试当前日期和时间是否介于今天午夜和明天午夜之间(所有时间均为 UTC 时间)。 | 真 |
IsUTCToday(UTCToday()) | 测试当前日期是否介于今天午夜和明天午夜之间(所有时间均为 UTC 时间)。 | 真 |
显示一个会实时更新的时钟
添加一个 Timer 控件,将其 Duration 属性设置为 1000,并将其 Repeat 属性设置为 true。
计时器将运行一秒钟,然后自动重新开始,并持续该模式。
将该控件的 OnTimerEnd 属性设置为以下公式:
Set(当前时间,Now())
每当计时器重新开始(在一秒后),此公式会将 CurrentTime 全局变量设置为 Now 函数的当前值。
添加一个 Label 控件,然后将 Text 属性设置为以下公式:
文本(当前时间,LongTime24)
使用 Text 函数来设置所需的日期和时间格式,或将此属性设置为 CurrentTime 以显示小时和分钟值,但不显示秒。
按 F5 可预览应用,然后通过单击或点击计时器可启动计时器。
标签持续显示当前时间(细化到秒)。
将计时器的 AutoStart 属性设置为 true,其 Visible 属性设置 false。
计时器变为不可见,并自动启动。
设置屏幕的 OnStart属性,以使 CurrentTime 变量具有一个有效值,如以下示例所示:
Set(当前时间,Now())
标签会在应用启动时立即显示(在计时器运行完 1 秒之前)。