Power Apps 中的 DateValue、TimeValue 和 DateTimeValue 函数

字符串类型的日期和/或时间转换为日期/时间值。

描述

  • DateValue 函数可用于将日期字符串(例如“10/01/2014”)转换为日期/时间值。

  • TimeValue 函数可用于将时间字符串(例如“12:15 PM”)转换为日期/时间值。

  • DateTimeValue 函数可用于将日期和时间字符串(例如“January 10, 2013 12:13 AM”)转换为日期/时间值。

DateValue 函数会忽略日期字符串中的任何时间信息,而 TimeValue 函数则会忽略时间字符串中的任何日期信息。

备注

默认情况下,DateValue、TimeValue 和 DateTimeValue 函数使用当前用户设置中的语言。 您可以覆盖它以确保正确解释字符串。 例如,“10/1/1920”在“en”中解释为 10 月 1 日,而在“fr”中则解释为 1 月 10 日

日期必须采用以下格式之一︰

  • MM/DD/YYYY 或 MM-DD-YYYY
  • DD/MM/YYYY 或 DD-MM-YYYY
  • YYYY/MM/DD 或 YYYY-MM-DD
  • MM/DD/YY 或 MM-DD-YY
  • DD/MM/YY 或 DD-MM-YY
  • DD Mon YYYY
  • Month DD, YYYY

要从数字日期、月份和年份组件进行转换,请阅读 Date
要从数字小时、分钟和秒进行转换,请阅读 Time

有关详细信息,请阅读:

语法

DateValue( String [, Language ])
DateTimeValue( String [, Language ])
TimeValue( String [, Language ])

  • String - 必需。 包含日期、时间或日期和时间值组合的文本字符串。
  • Language - 可选。 语言字符串,例如可通过 Language 函数返回语言的前两个字符。 如果未提供,则使用当前用户设置的语言。

DateValue( Untyped )
DateTimeValue( Untyped )
TimeValue( Untyped )

  • Untyped - 必需。 表示日期或时间的非类型化对象。 可接受值取决于非类型化提供程序。 对于 JSON,非类型化对象应为 JSON 字符串,其中包含 ISO 8601 格式的日期和时间。 其他格式的日期或时间将导致错误。 考虑先将这些值转换为文本,然后再转换为日期或时间。 请记住,在与外部系统通信时,时区和与区域设置相关的格式是重要的注意事项。

示例

DateValue

如果在标准 文本输入控件中键入了 10/11/2014,然后将标签的 Text 属性设置为以下公式:

  • 从用户区域设置中的字符串转换日期,并将结果显示为长日期。

    Text( DateValue( Startdate.Text ), DateTimeFormat.LongDate )
    

    设置为 en 区域设置的设备会将标签显示为 Saturday, October 11, 2014

    备注

    您可以通过 DateTimeFormat 枚举使用多个选项。 要显示选项列表,请在公式栏中键入参数,后跟点或句点 (.),或查看 Text 函数参考

  • 从“法语”区域设置中的字符串转换日期,并将结果显示为长日期。 在此示例中,月份中的月和日与英语的解释方式不同。

    Text( DateValue( Startdate.Text, "fr" ), DateTimeFormat.LongDate )
    

    设置为 en 区域设置的设备会将标签显示为 Monday, November 10, 2014

如果您键入了 October 20, 2014,则为:

  • 从用户区域设置中的字符串转换日期,并计算两天之间的差值(以天为单位)

    DateDiff( DateValue( Startdate.Text ), Today() )
    

    设置为 en 区域的设备将标签显示为 9,指示 10 月 11 日至 10 月 20 日之间的天数。 DateDiff 函数还可以显示月份、季度或年份之间的差值。

DateTimeValue

如果在名为开始的文本输入控件中键入了 10/11/2014 1:50:24.765 PM,则将标签的 Text 属性设置为以下公式:

  • 在当前区域设置中转换日期和时间字符串。

    Text( DateTimeValue( Start.Text ), DateTimeFormat.LongDateTime )
    

    设置为 en 区域设置的设备会将标签显示为 Saturday, October 11, 2014 1:50:24 PM

    备注

    您可以通过 DateTimeFormat 枚举使用多个选项。 要显示选项列表,请在公式栏中键入参数,后跟点或句点 (.),或查看 Text 函数参考

  • 在“法语”区域设置中转换日期和时间字符串。 月份中的月和日的解释方式不同。

    Text( DateTimeValue( Start.Text, "fr"), DateTimeFormat.LongDateTime )
    

    设置为 en 区域设置的设备会将标签显示为 Monday, November 10, 2014 1:50:24 PM

  • 在用户的区域设置中转换日期和时间字符串,并以小数秒显示结果。

    Text( DateTimeValue( Start.Text ), "dddd, mmmm dd, yyyy hh:mm:ss.fff AM/PM" )
    

    设置为 en 区域设置的设备会将标签显示为 Saturday, October 11, 2014 01:50:24.765 PM

    还有一种方法是指定 hh:mm:ss.fhh:mm:ss.ff 以将时间传入到秒的最接近 10 倍或 100 倍值。

TimeValue

将文本输入控件命名为 FinishedAt,然后将标签的 Text 属性设置为以下公式:

If( TimeValue( FinishedAt.Text ) < TimeValue( "5:00:00.000 PM" ),
    "You made it!",
    "Too late!"
)
  • 如果在 FinishedAt 控件中输入 4:59:59.999 PM,标签会显示“You made it!
  • 如果在 FinishedAt 控件中键入 5:00:00.000 PM,标签会显示“Too late!