DateValue、TimeValue 和 DateTimeValue 函数
适用于:画布应用桌面流模型驱动应用 Power Pages Power Platform CLI
将字符串类型的日期和/或时间转换为日期/时间值。
描述
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.f 或 hh: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!”