Date、DateTime 和 Time 函数
适用于: 画布应用 桌面流 模型驱动应用 Power Pages Power Platform CLI
将日期和时间组件转换为日期/时间值。
描述
Date 函数将单个年、月、日的值转换为日期/时间值。 时间部分为午夜。
- 如果“年”介于 0 到 1899(含)之间,则函数将该值加上 1900,以计算年份。 70 年变成了 1970 年。
- 如果“月”小于 1 或大于 12,则结果将从指定年份的第一个月减去或加上该月数。
- 如果“日”大于指定月的天数,函数将从该月的第一天加上该天数,并返回次月对应的日期。 如果“日”小于 1,函数将从指定月份的第一天减去该天数,再加 1。
Time 函数将小时、分钟、秒以及可选的毫秒值转换为日期/时间值。 其结果不与日期相关联。
DateTime 函数将 Date 和 Time 函数组合成一个函数,同时接受日期和时间参数,并返回包含日期和时间组件的日期/时间值。
有关如何将字符串转换为值的信息,请参阅 DateValue、TimeValue 和 DateTimeValue 函数。
有关详细信息,请参阅处理日期和时间。
语法
日期( 年, 月, 日 )
- Year - 必需。 大于 1899 的数值将被解释为绝对值(1980 被解释为 1980);介于 0 到 1899 之间的数值将被解释为相对于 1900。 (例如,80 将被解释为 1980。)
- Month - 必需。 该数值介于 1 到 12 之间。
- Day - 必需。 该数值介于 1 到 31 之间。
时间( 小时, 分钟, 秒 [, 毫秒 ])
- 小时 - 必需。 小时数,通常在 0 (12:00 AM) 到 23 (11:00 PM) 之间。
- minute - 必需。 分钟数,通常在 0 到 59 之间。
- Second - 必需。 秒数,通常在 0 到 59 之间。
- milliseconds - 可选。 毫秒数,通常在 0 到 999 之间。
DateTime( 年,月 , 日, 小时, 分钟, 秒 [, 毫秒 ])
- Year - 必需。 大于 1899 的数值将被解释为绝对值(1980 被解释为 1980);介于 0 到 1899 之间的数值将被解释为相对于 1900。 (例如,80 将被解释为 1980。)
- Month - 必需。 该数值介于 1 到 12 之间。
- Day - 必需。 该数值介于 1 到 31 之间。
- 小时 - 必需。 小时数,通常在 0 (12:00 AM) 到 23 (11:00 PM) 之间
- minute - 必需。 分钟数,通常在 0 到 59 之间。
- Second - 必需。 秒数,通常在 0 到 59 之间。
- milliseconds - 可选。 毫秒数,通常在 0 到 999 之间。
示例
Date
如果用户
- 1979 年在名为 HireYear 的文本输入控件中
- 3 在名为 HireMonth 的文本输入控件中
- 17 在名为 HireDay 的文本输入控件中
该公式将返回 3/17/1979
:
Date( Value(HireYear.Text), Value(HireMonth.Text), Value(HireDay.Text) )
时间
如果用户
- 14 在名为 BirthHour 的文本输入控件中
- 50 在名为 BirthMinute 的文本输入控件中
- 24 在名为 BirthSecond 的文本输入控件中
该公式将返回 02:50:24 P
:
Text(
Time(Value(BirthHour.Text), Value(BirthMinute.Text), Value(BirthSecond.Text)),
"hh:mm:ss A/P"
)
日期/时间
如果用户
- 2023 在名为 EclipseYear 的文本输入控件中
- 10 在名为 EclipseMonth 的文本输入控件中
- 28 在名为 EclipseDate 的文本输入控件中
- 13 在名为 EclipseHour 的文本输入控件中
- 14 在名为 EclipseMinute 的文本输入控件中
- 5 在名为 EclipseSecond 的文本输入控件中
- 231 在名为 EclipseMillisecond 的文本输入控件中
该公式将返回 10/28/23 01:14:05.231 PM
:
Text(
DateTime(Value(EclipseYear.Text), Value(EclipseMonth.Text), Value(EclipseDate.Text),
Value(EclipseHour.Text), Value(EclipseMinute.Text),
Value(EclipseSecond.Text), Value(EclipseSecond.Millisecond)
),
"yy/mm/dd hh:mm:ss.000 AM/PM"
)