Skip to main content

日期时间函数

日期时间函数对日期和时间值执行操作或计算。使用日期时间函数可增加或减去时间间隔、查找当前日期、查找月的第一天或最后一天、提取日期时间值的某个部分或将值转换为其他格式。

Alteryx 使用 ISO 格式 yyyy-mm-dd HH:MM:SS 表示日期和时间。为了增加精度(最高精确到 18 位),请在秒数位置后添加一个句点和其他数字。例如 yyyy-mm-dd HH:MM:SS.5 。如果一个日期时间值不是这种格式,Alteryx 则将其读取为字符串。要将列转换成日期时间格式,可使用表达式编辑器中的 DateTimeParse 函数或 “日期时间”工具 进行。

Date Format

某些日期时间函数要求您设置日期的格式。格式字符串由说明符和分隔符组成。

日期时间函数

请参阅下面的 DateTime 函数。

DateTimeAdd

DateTimeAdd(dt,i,u) :: 将一个具体时间间隔添加到日期时间值中。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

i : 时间正数或负整数,用于进行加减。

u :日期时间单位,使用 日期时间单位的关键字 部分中列出的关键字在引号之间指定。

示例

DateTimeAdd(DateTimeToday(), -1, "days") 返回昨天的日期。

DateTimeAdd(DateTimeFirstOfMonth(), 1, "months") 返回下个月的第一天的日期时间。

DateTimeAdd("2016-01-30", 1, "month") 返回 2016-02-29(因为 2 月没有 30 号,但该年 2 月份的最后一天是 29 号)。 

DateTimeAdd("2016-03-30", -1, "month") 返回 2016-02-29(因为 2 月没有 30 号,但该年 2 月份的最后一天是 29 号)。 

DateTimeAdd("2016-03-30 01:02:03.000000", 495, "microseconds") 返回 2016-03-30 01:02:03.000495。

阅读更多

  • 表示时间段的任何小数都将被截断。例如,您不能加 “1.5 小时”。但可以加 “90 分钟”。

  • 添加单位不会改变比其小的单位的值。例如,添加小时不会更改分钟或秒的值。添加月不会更改日期或时间,除非生成的月份不存在该天。在这种情况下,系统将用该月的最后一天。

  • This function performs calculations as if the time zone does not have time changes related to Daylight and Standard time. This might produce unexpected results if your calculation includes dates and times when the time changes from Daylight to Standard or vice versa. If the precision of the actual time that passes is critical, you should first convert your data to UTC.

DateTimeDay

DateTimeDay(dt) :返回日期时间值中月份日期的数字值。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

示例

DateTimeDay("2017-03-24 11:43:23") 返回 24。

DateTimeDiff

DateTimeDiff(dt1,dt2,u) :第一个参数减去第二个参数,并返回它们之间的整数差值。时间间隔以指定时间单位为单位返回一个数字,而不是返回字符串。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

u :日期时间单位,使用 日期时间单位的关键字 部分中的关键字在引号之间指定。

示例

DateTimeDiff("2024-01-18", "2024-01-15", "days") returns 3.

DateTimeDiff("2016-02-15 00:00:00", "2016-01-15 00:00:01", "Months") 返回 1(因为开始日期和结束日期是当月的同一天)。

DateTimeDiff("2012-02-29","2011-03-01","years") 返回 0(尽管 2011-03-01 经过 365 天后是 2012-02-29,但 2 月 29 日在 3 月 1 日之前,因此还不够“一年”)。

DateTimeDiff("2016-02-14", "2016-01-15", "Months") 返回 0(因为 2 月的天数少于 1 月的天数)。

DateTimeDiff("2016-02-14 23:59:59", "2016-01-15 00:00:00", "Months") 返回 0(即使只差一秒钟的时间就能达到要求的日期)。

DateTimeDiff('2017-02-28', '2016-02-29', 'Months') 返回 11(即使 28 号是 2017 年 2 月份的最后一天,但 28 天仍少于 29 天)。

DateTimeDiff('2017-02-28 00:59:59.28139502', '2017-02-28 00:59:59.12383125', 'msecs') 返回 157(日期时间值之间的毫秒数)。

阅读更多

  • 对于月和年的时间差,仅当结束日期与开始日期之间相距一个整月时,才会被计算成一个月(当天时间将被忽略)。

  • 天、小时、分钟和秒的结果经过精准计算,小数部分将被截断,但不是进行四舍五入。因此...

    • DateTimeDiff(‘2016-01-01 00:59:59’, ‘2016-01-01 00:00:00’, ‘Hours’) 的结果为 0。

    • DateTimeDiff(‘2016-01-01 23:59:59’, ‘2016-01-01 00:00:00’, ‘Days’) 的结果为 0。

  • 单位名称可以缩短为前三个字符(如 'sec' 和 'min');不区分大小写。

  • 以秒为单位存储时间差时要格外注意。以秒为单位时,Int32 只能支持长达 68 年的时间差,以分钟为单位则可支持长达 4082 年的时间差。您可以使用 Double 或 Int64 来保留所有支持日期之间的时间间隔。

  • This function performs calculations as if the time zone does not have time changes related to Daylight and Standard time. This might produce unexpected results if your calculation includes dates and times when the time changes from Daylight to Standard or vice versa. If the precision of the actual time that passes is critical, you should first convert your data to UTC.

DateTimeFirstOfMonth

DateTimeFirstOfMonth() :返回每月的第一天(午夜时间)。

DateTimeFormat

DateTimeFormat(dt,f,l) :以指定语言 (l),将日期时间数据从 ISO 格式转换为其他指定格式 (f),以用于其他应用。输出为字符串数据类型。如果指定格式的精度较低,则输出会被截断。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

f :转换数据的格式,以格式字符串表示。

l :可选语言参数。语言参数默认为选定的 Designer 语言。例如,如果将 Designer 设置为法语,则默认以 DateTimeParse(dt,f,"Français") 取读。有关接受的语言值,请参阅 语言参数

tz: This is an optional time zone parameter. Note that the data is not converted. This is simply to guide the style of the text added to the string.

  • The time zone identifier determines what offset to show if you use the offset format instruction (%z) or to get a name for the time zone to show if you use the time zone name format instruction (%Z).

  • The time zone name preserves the style of the argument: short (like EST), long (like Eastern Standard Time), generic (like ET), or specific (like EST/EDT).

    The name is modified to match the correct season for the data. For example, if the tz is provided as EST for 2024-08-15, it is corrected to EDT. Similarly, for 2024-01-15, if the tz is provided as EDT, it is corrected to EST. For both of these examples, if the tz is provided as a generic ET it is not changed to show whether it is Daylight or Standard time.

  • If the tz is not provided in the function call, the system time zone is used.

示例

DateTimeFormat([DateTime_Out],"%d-%m-%Y") 返回 22-04-2008(日期值为 April 22, 2008,ISO 格式为 2008-04-22)。

DateTimeFormat([DateTime_Out],"%A","Spanish") 返回 "martes" ( ISO日期为2020-07-14,7月14日为星期二)。

DateTimeFormat('11:59:57.890994389','%H:%M:%S.%5') 返回"11:59:57.89099"(根据指定的数字截断到5位精度)。

DateTimeFormat('11:59:57.99','%H:%M:%S,%3') 返回"11:59:57,990"(可以获得您所在语言环境的小数分隔符。此示例使用逗号而不是小数点)。

DateTimeFormat('2024-03-10 01:00:00', '%b %d, %y %T %Z', '', 'ET') returns 'Mar 10, 24 01:00:00 ET'. The style of the time zone argument is short and generic, so that is used in the result.

DateTimeFormat('2024-03-10 01:00:00', '%b %d, %y %T %Z', '', 'EDT') returns 'Mar 10, 24 01:00:00 EST'. The style of the time zone argument is short and specific. It's incorrect for the time of the data. The result gets the specific time zone offset corrected.

DateTimeFormat('2024-03-10 01:00:00', '%b %d, %y %T %Z', '', 'Eastern Time') returns 'Mar 10, 24 01:00:00 Eastern Time’. The style is kept, and no shift needs to be corrected.

DateTimeFormat('2024-03-10 01:00:00', '%b %d, %y %T %Z', '', 'Eastern Daylight Time') returns 'Mar 10, 24 01:00:00 Eastern Standard Time’. The time zone shift is corrected.

DateTimeFormat('2024-03-10 01:00:00', '%b %d, %y %T %z', '', 'ET') returns 'Mar 10, 24 01:00:00 -0400’.

DateTimeHour

DateTimeHour(dt) :返回日期时间值中小时部分的值。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

示例

DateTimeHour("2017-03-24 11:43:23") 返回 11。

DateTimeHour("2017-03-24") 返回 0(如果只有日期但没有指定时间,则默认小时为午夜时间)。

DateTimeLastOfMonth

DateTimeLastOfMonth() :返回当月的最后一天,时钟设置为一天结束前一秒的时间 (23:59:59)。

Designer 使用首次解析公式时的日期和时间。在批处理过程中,此时间用于每组新数据。这可保持在处理需要很长时间情况下时间的一致性。

DateTimeMinutes

DateTimeMinutes(dt) :返回日期时间值中分钟部分的值。

参数

dt : 日期时间数据,由所选列或带引号的日期时间值表示。

示例

DateTimeMinutes("2017-03-24 11:43:23") 返回 43。

DateTimeMonth

DateTimeMonth(dt) :返回日期时间值中月份的数字值。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

示例

DateTimeMonth("2017-03-24 11:43:23") 返回 3。

DateTimeMonth("11:43:23") 返回 [Null],因为传入数据无效。

DateTimeNow

DateTimeNow() :返回当前系统日期和时间,具体到秒。

Parameters

tz: (Optional) Provide a time zone for the returned time. If provided, the returned time uses that time zone. If omitted, the returned time uses your system time zone.

DateTimeNowPrecise

DateTimeNowPrecise() :返回当前系统日期和时间,具体到秒后的小数,最多支持 18 位精度。请注意,如果您请求的精度超出操作系统提供的精度,则该函数会在剩余部分填入 0,例如下面的第二个示例。

Note that if you request precision beyond what your operating system provides, the function fills in the remainder with zeros, like in the second example below.

Parameters

digits: Specify the precision of the returned value, between 0 and 18 (inclusive).

tz: (Optional) Provide a time zone for the returned time. If provided, the returned time uses that time zone. If omitted, the returned time uses your system time zone.

示例

DateTimeNowPrecise(3) 返回 '2022-10-14 11:59:57.991'。

DateTimeNowPrecise(12) 返回 '2022-10-14 11:59:57.991238400000'。

DateTimeParse

DateTimeParse(string,f,l) :将指定格式 (f) 和指定语言 (l) 的日期字符串转换为标准 ISO 格式(yyyy-mm-dd HH:MM:SS,如果适用,还可以满足可选的日期时间精度要求)。如果指定格式的精度较低,则输出会被截断。

参数

string :日期时间字符串数据,由所选字段或带引号的日期时间字符串表示。传入数据必须是字符串数据类型,并且可以是日期时间的任何格式,只要此格式与您为 f 参数指定的格式一致即可。

f :要转换的传入日期字符串数据的格式,由带引号的格式字符串表示。

Time Zones

If the incoming format includes %z or %Z, Alteryx knows the input time zone. It converts the DateTime result value into the local or specified time zone. If the format or data does not have time zone information, Alteryx assumes the input is already in the local time zone, and does not apply any time shifts.

Review your data and take appropriate steps to ensure that your output is in the format you expect. For important time zone considerations, go to Time Zone and Daylight/Standard Time Changes.

l :(可选)要转换的传入日期字符串数据的语言。语言参数默认为选定的 Designer 语言。例如,如果将 Designer 设置为法语,则默认以 DateTimeParse(string,f,"Français") 取读。有关接受的语言值,请参阅 语言参数

tz: (Optional) The time zone to convert the data to if %z or %Z is in the format and the text has the name of a time zone or an offset in it. The examples will help to clarify this. If the time zone is omitted, the system time zone is used for conversion.

示例

DateTimeParse("2016/28-03","%Y/%d-%m") 返回 2016-03-28。

DateTimeParse([DateTimeNow],"%A %d %B %Y", "Français") 返回 2020-07-14,其中传入日期字符串为“mardi 14 juillet 2020”(2020 年 7 月 14 日星期二)。

DateTimeParse('Oct 4, 22 11:59:57.99', '%b %d, %y %H:%M:%S') 返回 '2022-10-04 11:59:57'。该函数会删除尾随数字。

DateTimeParse('Oct 4, 22 11:59:57.99', '%b %d, %y %H:%M:%S.%3') 返回 '2022-10-04 11:59:57.990'。该函数添加零以匹配 %3 格式。

DateTimeParse('Oct 4, 22 11:59:57.99', '%b %d, %y %H:%M:%S,%3') 返回 '2022-10-04 11:59:57.000'和一条警告,提示期望的是","而不是"."。

DateTimeParse('Mar 10, 24 01:00:00 PST', '%b %d, %y %T %Z') returns '2024-03-10 04:00:00’ if the local time zone is Eastern.

DateTimeParse('Mar 12, 24 01:00:00 PST', '%b %d, %y %T %Z') returns ‘2024-03-12 05:00:00’ If the local time zone is Eastern because Eastern time has already changed to EDT (Eastern Daylight Time).

DateTimeParse('Mar 10, 24 01:00:00', '%b %d, %y %T %Z') returns ‘2024-03-10 01:00:00’ if the local time zone is Eastern. Even though the format asked for time zone information, none was present in the data. Without knowing the time zone for the input data, no conversion is done.

DateTimeParse('Mar 10, 24 01:00:00 PST', '%b %d, %y %T') returns ‘2024-03-11 01:00:00’. As in the above example, if the format does not ask to use time zone information, any data that might have time zone data is ignored.

DateTimeQuarter

DateTimeQuarter(dt, [Q1Start] :返回日期时间 (YYYY-MM-DD) 值所在年份的季度的数值。使用可选的数字参数表示第一季度 (Q1) 的起始月份。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

Q1Start :可选的数字参数 (1-12) ,表示 Q1的起始月份。

示例

DateTimeQuarter("2023-01-03") 返回 1。没有错误,因为第二个参数为可选。

DateTimeQuarter("2023-05-03", 1) 返回 2。

DateTimeQuarter("2023-05-03", 7) 返回 4。可选参数表示 Q1 从七月开始。

DateTimeQuarter("2023-05-03 12:04:55", 7) 返回 4。可选参数指示 Q1 从七月开始,时间戳会被忽略。

DateTimeQuarter("2023-01-03", 13) 返回 Null。第二个参数必须是介于 1–12 之间的数值。

DateTimeQuarter("2023-01-03", 0) 返回 Null。第二个参数必须是介于 1–12 之间的数值。

DateTimeQuarter("2023-01-03", -1) 返回 Null。第二个参数必须是介于 1–12 之间的数值。

DateTimeQuarter("12:00:55") 返回 Null。

DateTimeSeconds

DateTimeSeconds(dt) :返回日期时间值中的秒数部分,包括任何亚秒级精度(如果适用)。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

示例

DateTimeSeconds('11:59:57.99') 返回 57.99。

DateTimeSeconds('11:59:57') 返回 57。

DateTimeStart

DateTimeStart() :返回当前工作流开始运行的日期和时间。

DateTimeToday

DateTimeToday() :返回今天的日期。

预期结果:DateTimeToday 数据类型

尽管名称包含时间, DateTimeToday() 不返回时间值。而仅返回带有当前日期的日期。您可以将 DateTimeToday() 函数括在 ToDateTime() 函数内以返回时间设置为当天午夜的日期时间值:

ToDateTime(DateTimeToday())

DateTimeToLocal

DateTimeToLocal(dt) :将 UTC 日期时间转换为本地系统时区。DateTimeToLocal 函数目前不支持 dt 字段中的日期时间精度。

注意

The result doesn't have any indication about what its time zone is. You need to use DateTimeFormat or modify the result as a string to indicate the time zone if desired. If you use DateTimeFormat, the tz argument should be a name for the same tz used in the conversion. It could use a different style like EST, or Eastern Daylight Time, or America/New_York, or ‘-0400’. For important time zone considerations, go to Time Zone and Daylight/Standard Time Changes.

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

tz: This is an optional time zone parameter to convert the date-time to. If (tz) is not provided in the function call, the system time zone is used.

示例

DateTimeToLocal('2014-08-01 20:01:25') 返回本地系统时区(山地标准时间),即 2014-08-01 14:01:25。

DateTimeToLocal('2024-08-15 09:00:00.123') converts the UTC time to the system time, which could be America/New_York, returns ‘2024-08-15 05:00:00.123’, or it could be America/Denver, returning ‘2024-08-03:00:00.123’.

DateTimeToLocal('2024-08-15 09:00:00.123', 'EST') converts the UTC time to Eastern Daylight Time, even though the time specified is Standard Time. The daylight/standard specification is ignored when looking up the time zone for the conversion, so this returns ‘2024-08-15 05:00:00.123’.

DateTimeToUTC

DateTimeToUTC(dt) :将日期时间(在本地系统时区)转换为 UTC。DateTimeToUTC 函数目前不支持 dt 字段中的日期时间精度。

注意

The result doesn't have any indication that it is in UTC. You need to use DateTimeFormat or modify the result as a string to indicate the time zone if desired. If you use DateTimeFormat, the TZ argument should be a name for the same time zone used in the conversion. It could use a different style like UTC, GMT, or Z, or ‘+0000’. For important time zone considerations, go to Time Zone and Daylight/Standard Time Changes.

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

tz: This is an optional time zone parameter. If the tz is not given in the function call, the system time zone is used.

示例

DateTimeToUTC(DateTimeNow()) 返回工作流运行时的协调世界时间 (UTC):2014-08-01 20:01:25(当地山地时间是 2014-08-01 14:01:25)。

DateTimeToUTC('2024-08-15 09:00:00.123') converts the time to UTC from the system time, which can be America/New_York, returning ‘2024-08-15 13:00:00.123’, or America/Denver, returning ‘2024-08-15:00:00.123’.

DateTimeTrim

DateTimeTrim(dt,t) :删除日期时间中不需要的部分,并返回修改后的日期时间。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

t : 修剪类型。选项包括:

  • firstofmonth :修剪至当月的第一天(这与 month 选项相同)。

  • lastofmonth :将日期延长至当月的最后一天午夜前一秒。

  • year :修剪至 1 月 1 日午夜。

  • month :修剪至当月第一天午夜。

  • day :修剪至当天(即午夜)。这将日期时间转换成时间为零的日期时间(不是日期)。

  • hour :修剪至小时。

  • minute :修剪至分钟。

  • :使用 日期-时间单位的关键字 部分中的关键字剪裁到秒和秒分数引号。

修剪日期时间不会对返回值进行四舍五入。例如,修剪时间 15:59:59 的分钟和秒部分后,时间变成 15:00:00, 而不是 16:00:00。

示例

DateTimeTrim("2016-12-07 16:03:00","year") 返回 2016-01-01 00:00:00。

DateTimeTrim('2016-12-07 11:59:57.99','msec') 返回 11:59:57.990。

DateTimeTrim('2016-12-07 11:59:57.99',4) 返回 11:59:57.9900。

DateTimeTrim('2016-12-07 11:59:57.123456789','milliseconds') 返回 11:59:57.123。

DateTimeYear

DateTimeYear(dt) :返回日期时间值中年份的数字值。

参数

dt :日期时间数据,由所选列或带引号的指定日期时间值表示。

示例

DateTimeYear("2017-03-24 11:43:23") 返回 2017。

ToDate

ToDate(x) :将字符串、数字或日期时间转换为日期。

  • 传入字符串的格式应为 YYYY-MM-DD。例如,2020-10-31。

  • 传入数字的格式应为 Excel 日期格式,其中数字表示自 01-01-1900 以来的天数。例如,7000 对应于 03-01-1919。

  • 传入日期时间的格式应为 YYYY-MM-DD hh:mm:ss。例如,2020-10-31 12:00:00。

示例

ToDate('2020-10-31') 将 2020-10-31 作为日期返回。

ToDate(7000) 将 1919-03-01 作为日期返回。

ToDate('2020-10-31 12:00:00') 将 2020-10-31 作为日期返回。

ToDateTime

ToDateTime(x) :将字符串、数字或日期转换为日期时间。ToDateTime 函数不支持大于秒的精度。将 Excel 值限制为以秒表示(5 位,最多 99999)。

  • 传入字符串的格式应为 YYYY-MM-DD hh:mm:ss。例如,2020-10-31 12:00:00。

  • 传入数字的格式应为 Excel 日期时间格式,其中数字表示自 01-01-1900 以来的天数。例如,7000.354167 对应于 03-01-1919 上午 8:30。

示例

ToDateTime('2020-10-31') 将 2020-10-31 00:00:00 作为日期时间返回。

ToDateTime(7000.354167) 将 1919-03-01 08:30:00 作为日期时间返回。

ToDateTime('2020-10-31 12:00:00') 将 2020-10-31 12:00:00 作为日期时间返回。

Date-Time Function Reference

Refer to these specifiers, separators, keywords, and language parameters for use in date-time functions.

说明符

说明符总是以百分比符号 (%) 开头,后跟一个区分大小写的字母或数字。数据必须至少包含两位数的年。

说明符

DateTimeFormat 的输出

DateTimeParse 支持的输入

Year

%y

Last two digits of the year ("16").

Up to 4 digits are read, stopping at a separator or the end of the string, and mapped to a range of the current year minus 66 to the current year plus 33. For example, in 2016, that's 1950 to 2049.

Limitation with 6-Digit Dates

Because up to 4 digits are read for the year, formats that are intended to have only 2 digits without a separator, such as a 6-digit date stamp (for example, %y%m%d for data resembling 170522 for May 22, 2017), are still read as 4 digits. To work around this limitation, you can...

  • Use 4 digits for the year (for example, 2017 instead of 17), depending on your range of dates.

  • Use the RegEx tool to insert a space after the first 2 digits in the string.

%Y

四位数字的年 ("2016")。

读取 2 位或 4 位数字。2 位数字映射到当前年份减 66 到当前年份加 33 的范围。例如,就 2016 年而言, 这个范围在 1950 到 2049 年之间。

Month

%b

缩写的月份名称 ("Sep")

月份名称的任何有效缩写 ("Sep", "SEPT.")。仅当给定文本不是月份名称时才返回错误。

%B

完整的月分名称 ("September")

月份名称或月份名称的任何有效缩写 ("Sep", "SEPT.")。仅当给定文本不是月份名称时才返回错误。

%h

Abbreviated Month Name. Same as %b ("Sep").

Any valid abbreviation of a month name ("Sep", "SEPT."). Returns an error only if the given text is not the name of a month.

%m

月份数字,01 - 12。

1 位或 2 位数字的月份,1 或 01 - 12。

Week

%U

返回以数字表示的周,即 00 - 53,周从星期日开始。

不支持

%W

返回以数字表示的周,即 00 - 53,周从星期一开始。

不支持

Day of the Year/Month

%d

月份中的日期 ("01")

1 位或 2 位数字,忽略空格(“1”或“01”)。

%e

月份中的日期,第一个 0 替换为空格 (" 1")。

1 位或 2 位数字,忽略空格(“1”或“01”)。

%j

一年中的日期,001 - 365(闰年为 366)

一年中的 3 位数字的日期,001 - 365(闰年为 366)

Day of the Week

%a

星期的缩写 ("Mon")

一周内任何一天的有效缩写 ("mon", "Tues.", "Thur")。只有当给定的文本不是一周内的某一天时才返回一个错误。请注意,Alteryx 不查证所指的周内的某一天是否与相应的日期相吻合。

%A

完整的工作日名称 ("Monday")

星期几名称或星期几的任何有效缩写 ("mon", "Tues.", "Thur")。只有当给定的文本不是一周内的某一天时才返回一个错误。请注意,Alteryx 不查证所指的周内的某一天是否与相应的日期相吻合。

%u

小数形式表示的星期几,1-7,星期一为 1。

不支持

%w

数字表示的星期,0 - 6,星期日为 0。

不支持

Hour, Minute, Second

%H

以 24 小时制表示的小时,00 - 23。

小时最多为 2 位数字,0 - 23。与 %p 或 %P 不兼容。

%I (请注意这是大写字母“I”)

以 12 小时制表示的小时,01 - 12。

小时最多为 2 位数字,1 - 12。必须后跟 %p 或 %P。

%k

24 小时,第一个 0 是空格," 0" - "23"。

小时最多为 2 位数字。

%M

分钟,00 - 59

分钟最多为 2 位数字。

%S

秒,00 - 59

秒最多为 2 位数字。

Miscellaneous

%1 - %18 (范围内的数字)

亚秒级精度位数。

亚秒级精度高达 18 位。

%c

计算机区域设置的日期和时间。

不支持

%C

世纪数字 ("20")

不支持

%D

相当于 %m/%d/%y

不支持

%h

与 %b ("Sep") 相同

月份名称的任何有效缩写 ("Sep", "SEPT.")。仅当给定文本不是月份名称时才返回错误。

%l (请注意这是小写字母"ell",即小写的 L)

12 小时,第一个 0 是空格," 1" - "12"。

不支持

%p

"AM"或"PM"

不区分大小写("aM"或"Pm")。必须接在 %I 后面(请注意这是大写字母“I”,12 小时制的小时)。

%P

"am"或"pm"

不区分大小写("aM"或"Pm")。必须接在 %I 后面(请注意这是大写字母“I”,12 小时制的小时)。

%T

24 小时制中的时间。等同于 %H:%M:%S

不支持

%x

计算机区域设置的日期。

不支持

%X

12 小时制时间,包含 AM 或 PM (“11:51:02 AM”)。

Hours:Minutes:Seconds [AM / PM]

%z

UTC 时差 ("-600")

不支持

%Z

完整时区名称 ("山区夏令时")。

不支持

分隔符

在日期时间说明符之间插入分隔符以形成格式字符串。

分隔符

DateTimeFormat 的输出

DateTimeParse 支持的输入*

/

/

/ 或 -

-

-

/ 或 -

空格

空格键

任何空格字符序列。

%n

换行

不支持

%t

Tab 键

不支持

其他

其他字符,如逗号、句点和冒号。

其他字符,如逗号、句点和冒号。

*DateTimeParse 接受向前斜杠 ( / ) 和连字符 ( - ) 的互换使用。但是,逗号、冒号和所有其他分隔符必须与传入数据完全匹配。

日期时间单位的关键字

这些关键字与 DateTimeAdd,DateTimeDiff 和 DateTimeTrim 函数兼容。关键字不区分大小写。每个单位接受的关键字均以逗号分隔。

在某些情况下,我们接受缩写,但最多不超过完整的关键词。在下面的列表中以 直至 指定这些缩写,范围从可接受的最短缩写到完整关键字。例如,对于 seconds(秒),我们接受 sec seconds ,以及中间的任何东西,如 seco 。请注意,关键字为英文,而且翻译成其他语言不受支持。

您也可以使用数字值作为亚秒时间的关键字。这包括下方列表中未特别标注的单位。例如,您可以使用关键字“10”来指示 10 位精度。

  • yea upto years

  • mon upto months

  • day, days

  • hou upto hours

  • min upto minutes

  • sec upto seconds

  • ds, dsec, dsecs, deciseconds, 1.

  • cs, csec, csecs, centiseconds, 2

  • ms, msec, msecs, milliseconds, 3

  • us, usec, usecs, microseconds, 6

  • ns, nsec, nsecs, nanoseconds, 9

  • ps, psec, psecs, picoseconds, 12

  • fs, fsec, fsecs, femtoseconds, 15

  • as, asec, asecs, attoseconds, 18

有关以各种精度单位表示的日期时间字段大小的一些示例,请参阅下表:

名称

缩写

日期时间大小

示例

sec

19(默认)

2023-02-24 01:23:45

分秒 (1)

ds, dsec, dsecs

21 (19 + 1 + 1)

2023-02-24 01:23:45.1

厘秒 (2)

cs, csec, csecs

22 (19 + 1 + 2)

2023-02-24 01:23:45.12

毫秒 (3)

ms, msec, msecs

23 (19 + 1 + 3)

2023-02-24 01:23:45.123

微秒 (6)

us, usec, usecs

26 (19 + 1 + 6)

2023-02-24 01:23:45.123456

纳秒 (9)

ns, nsec, nsecs

29 (19 + 1 + 9)

2023-02-24 01:23:45.123456789

皮秒 (12)

ps, psec, psecs

32 (19 + 1 + 12)

2023-02-24 01:23:45.123456789012

飞秒 (15)

fs, fsec, fsecs

35 (19 + 1 + 15)

2023-02-24 01:23:45.123456789012345

阿秒 (18)

as, asec, asecs

38 (19 + 1 + 18)

2023-02-24 01:23:45.123456789012345678

语言参数

这些是 DateTimeFormat 和 DateTimeParse 函数支持的 "l"(语言)参数的兼容值。

英语名称

母语名称

语言代码

英语

英语

en

意大利语

Italiano

it

法语

Français

fr

德语

Deutsch

de

日语

日本語

ja

西班牙语

Español

es

葡萄牙语

Português

pt

简体中文

简体中文

zh

除了上述值之外,亦接受长度至少为 2 个字符且以上述任意字符开头的值。例如,eng、engl、engli 等表示英语,或者 esp、espa、sp、spa、span 等表示西班牙语/Español。

Time Zone Naming

There are many styles for naming time zones. Names can be long (Mountain Time), short (MT), specific (MDT, MST), or generic (MT). The Internet Assigned Names Authority (IANA) maintains a database of time zone information. Its style of name is Region/City (for example, America/Los Angeles, Europe/Paris).

Time information can also be marked with its offset relative to Coordinated Universal Time (UTC). For example, 11:31-0500 is a time zone that is 5 hours behind UTC (the same moment in UTC is 16:31). This time could be Central Daylight Time, Eastern Standard Time, or Peru Time. The IANA style is the canonical name for a time zone. Other names might be accepted depending on the user’s locale.

Alteryx uses a widely used library (ICU) to look up time zone information. If your workflow references a time zone that can't be found, the workflow reports an error.

警告

Please be aware that short names can be ambiguous. For example, IST can be Indian, Israel, or Ireland Standard Time. As such, be careful with your input data.

Alteryx recommends replacing short time zone names with long or IANA-style names to ensure that your data is handled properly. You can use the Find Replace tool to do this.

To find a time zone by name, if the Designer language is set to a language other than English (via User Settings > Language and Region), Alteryx first asks ICU to look up the time zone using that language. If it fails to find the time zone with that language, Alteryx then asks ICU to look up the time zone using English. It happens that in some regions, English abbreviations are used even when the local language has a long name for the zone.

Alteryx also attempts to look up the name in each supported language, starting with the Designer interface language (or the language specified in the function).

提示

You should be aware of the names used for time zones in your data, and possibly use the Find-Replace tool to ensure that you get appropriate names for time zones.

Time Zone and Daylight/Standard Time Changes

Time zones that have daylight and standard time changes encounter complications when trying to interpret times near the shift from daylight to standard and vice versa.

Shift to Daylight Time

There is an hour around the shift to daylight time (Summer) that is invalid. In the US when local standard time was about to reach March 10, 2024, 2:00:00 AM, clocks were turned forward 1 hour to March 10, 2024, 3:00:00 AM local daylight time instead.

As a result, there was no 2024-03-10 02:30:00 Eastern Time, for example. This time is invalid—there is no such time. However, Alteryx libraries don't detect this problem. If you convert DateTimeToUTC('2024-03-10 02:30:00', 'Eastern Time'), the code applies the offset for standard time (5 hours), and returns '2024-03-10 07:30:00' without any warning of the invalid input.

Shift to Standard Time

There is an hour at the shift to standard time that is ambiguous. In the US, when local daylight time is about to reach November 3, 2024, 2:00:00 AM, clocks are turned backward 1 hour to November 3, 2024, 1:00:00 AM local standard time instead.

2024-11-03 01:30:00 Eastern Time can be either Eastern Standard Time or Eastern Daylight Time. Since it is a very common error to specify EST for a time that is really in Daylight, or EDT for a time that is really Standard, the libraries generally ignore the season specification when looking up time zone information.

As a result, Alteryx can't convert the ambiguous hour from Eastern Time to UTC by using the specified season correctly. It applies the offset for standard time (5 hours) regardless of whether EST or EDT is specified as the time zone to use, that is...

  • DateTimeToUTC('2024-11-03 01:30:00', 'Eastern Daylight Time') returns 2024-11-03 06:30:00.

  • DateTimeToUTC('2024-11-03 01:30:00', 'Eastern Standard Time') returns 2024-11-03 06:30:00.

  • DateTimeToUTC('2024-11-03 01:30:00', 'Eastern Time') returns 2024-11-03 06:30:00.

Notes and Limitations

日期支持

Designer 无法处理 1400 年 1 月 1 日之前的日期。

Alteryx supports dates in years from 1400 to 9999. We assume all dates are in the Gregorian Calendar, which is the civil calendar used now in most of the world. All computations (adding and subtracting) ignore leap seconds.