日期格式化器
Version 24.3.9111
Version 24.3.9111
- 常用日期格式化器
- 其它日期格式化器
- compare([value][, inputformat])
- date([outputformat])
- datediff([interval][, value][, inputformat])
- day([inputformat])
- dayofweek([inputformat])
- dayofyear([inputformat])
- filetimenow()
- fromfiletime([outputformat])
- isleap([ifleap][, ifnotleap])
- month([inputformat])
- tofiletime([inputformat])
- toutc([outputformat][, inputformat])
- utcnow([outputformat])
- weekday([inputformat])
- year([inputformat])
- 示例日期格式
日期格式化器
常用日期格式化器
下面的格式化器是常用日期格式化器。每个格式化器都有一个例子供参考。
其它日期格式化器的例子会包含在示例日期格式中。
注意:某些格式化器的可选参数周围的方括号不是必需的。 它们的存在是为了表示该参数是可选的。
now([outputformat])
返回当前系统的日期,格式由 outputformat 来指定(默认格式是:yyyy-MM-dd’T’hh:mm:sszzzz)。这个格式化程序的不同寻常之处在于它不会修改输入属性(变量),因此不需要输入属性。
- outputformat: 可选的格式说明符。有效说明符包括
d
(短日期模式)、D
(长日期模式)、f
(长日期/短时间模式)、F
(长日期/时间模式)、g
(常规短日期/时间模式)、G
(常规短日期/长时间模式)、r
或R
(RFC1123 模式)、s
(可排序日期/时间模式)、t
(短时间模式)、T
(长时间模式)、file
(Windows 文件时间)、MM/dd/yy
等等。
示例
<arc:set attr="timestamp" value="[now()]" />
todate([outputformat][, inputformat][, strictInputFormat])
返回由属性值指定的日期,如果有提供,则按参数指定的格式进行。
注意:如果在空的输入属性上调用格式化器,它会输出以上面显示的默认输出格式格式化的当前系统时间。
- outputformat: 可选的格式说明符。有效说明符包括
d
(短日期模式)、D
(长日期模式)、f
(长日期/短时间模式)、F
(长日期/时间模式)、g
(常规短日期/时间模式)、G
(常规短日期/长时间模式)、r
或R
(RFC1123 模式)、s
(可排序日期/时间模式)、t
(短时间模式)、T
(长时间模式)、file
(Windows 文件时间)、MM/dd/yy
等等。 - inputformat: 可选的输入格式指定符。默认值是自动检测。格式化器在解析日期属性时将尝试优先输入格式,但是,如果输入属性不匹配指定的输入格式,格式化器将尝试使用已知(标准)日期格式来解析输入属性。只有当输入属性不匹配指定的输入格式或任何已知的日期格式时,才会出现错误。
- strictInputFormat: 参数检查传入的日期值是否与输入格式匹配:如果不匹配,任务将抛出错误,而不是将日期转换为标准日期格式。 默认是不检查。 要强制检查,请将“true”添加到格式化器。
示例
<arc:set attr="simpleDate" value="01-30-2020" />
<arc:set attr="reformattedDate" value="[simpleDate | todate('yyyyMMdd', 'dd-MM-yyyy')]" />
dateadd(intervaltype, value[, outputformat][, inputformat])
返回日期时间的字符串值,该值是将指定的数字间隔(有符号的整数)加到指定的日期部分的结果。
- intervaltype:想添加的可选区间(year, month, day, hour, minute, second, 或者 millisecond)。
- value:想添加的可选时间间隔数。
- outputformat: 可选的格式说明符。有效说明符包括
d
(短日期模式)、D
(长日期模式)、f
(长日期/短时间模式)、F
(长日期/时间模式)、g
(常规短日期/时间模式)、G
(常规短日期/长时间模式)、r
或R
(RFC1123 模式)、s
(可排序日期/时间模式)、t
(短时间模式)、T
(长时间模式)、file
(Windows 文件时间)、MM/dd/yy
等等。 - inputformat:可选的输入格式指定符。默认为自动检测。
示例
<arc:set attr="shipdate" value="2020-03-15" />
<arc:set attr="estmArrivalDate" value="[shipdate | dateadd('day', 2)]" />
其它日期格式化器
下面出现的是一些未提及的不太常用的日期格式化器。
compare([value][, inputformat])
返回一个有符号的数字,表示属性值和参数值所代表的日期的相对值。
- value:可选值,将与属性值比较的日期的字符串表示。默认值为 now。
- inputformat:可选的输入格式指定符。默认为自动检测。
date([outputformat])
如果提供了参数,则以参数指定的格式返回当前的系统日期和时间。
- outputformat: 可选的格式说明符。有效说明符包括
d
(短日期模式)、D
(长日期模式)、f
(长日期/短时间模式)、F
(长日期/时间模式)、g
(常规短日期/时间模式)、G
(常规短日期/长时间模式)、r
或R
(RFC1123 模式)、s
(可排序日期/时间模式)、t
(短时间模式)、T
(长时间模式)、file
(Windows 文件时间)、MM/dd/yy
等等。
注意:这个格式化器是 now() 格式化器的一个别名。
datediff([interval][, value][, inputformat])
返回 now 和 value 参数指定的日期之间的差值(以 interval 参数指定的单位)。
- interval:想要的结果的可选区间,指定日、时、分、秒或毫秒。指定日、小时、分钟、秒或毫秒。
- value:可选的字符串,表示要显示的日期。可选的字符串表示的日期与属性值进行比较。默认值是 now。
- inputformat:可选的输入格式指定符。默认为自动检测。
day([inputformat])
返回属性值所代表的日期中天的部分,以 1 到 31 之间的数值表示。
- inputformat:可选值的输入格式指定符。默认为自动检测。
dayofweek([inputformat])
返回属性值所代表的日期的星期几。
dayofyear([inputformat])
返回属性值所代表的日期的年月日,数值在 1 到 366 之间。
- inputformat:可选的输入格式指定符。默认值是自动检测。
filetimenow()
返回当前系统文件时间的日期和时间。
fromfiletime([outputformat])
将有效的文件时间转换为有效的日期时间值,其格式由 outputformat
参数指定(如果有提供)。
- outputformat: 可选的格式说明符。有效说明符包括
d
(短日期模式)、D
(长日期模式)、f
(长日期/短时间模式)、F
(长日期/时间模式)、g
(常规短日期/时间模式)、G
(常规短日期/长时间模式)、r
或R
(RFC1123 模式)、s
(可排序日期/时间模式)、t
(短时间模式)、T
(长时间模式)、file
(Windows 文件时间)、MM/dd/yy
等等。
isleap([ifleap][, ifnotleap])
如果属性值代表的 4 位数年份是闰年,则返回 true(或 ifleap),否则返回 false(或 ifnotleap)。
- ifleap:可选值,如果属性值是闰年,则返回此值。
- ifnotleap:可选值,如果属性值不是闰年,则返回此值。
month([inputformat])
返回属性值所代表的日期的 1 到 12 之间的月份部分。
- inputformat:可选的输入格式指定符。默认值是自动检测。
tofiletime([inputformat])
将有效的日期时间转换为有效的文件时间值。
- inputformat:可选的输入格式指定符。默认值是自动检测。
toutc([outputformat][, inputformat])
返回由属性值指定的日期,该属性值将转换为 UTC 并按照 outputformat 参数指定的格式(如果提供的话)进行格式化。
- outputformat: 可选的格式说明符。有效说明符包括
d
(短日期模式)、D
(长日期模式)、f
(长日期/短时间模式)、F
(长日期/时间模式)、g
(常规短日期/时间模式)、G
(常规短日期/长时间模式)、r
或R
(RFC1123 模式)、s
(可排序日期/时间模式)、t
(短时间模式)、T
(长时间模式)、file
(Windows 文件时间)、MM/dd/yy
等等。
utcnow([outputformat])
返回当前系统的 UTC 日期和时间。
- outputformat: 可选的格式说明符。有效说明符包括
d
(短日期模式)、D
(长日期模式)、f
(长日期/短时间模式)、F
(长日期/时间模式)、g
(常规短日期/时间模式)、G
(常规短日期/长时间模式)、r
或R
(RFC1123 模式)、s
(可排序日期/时间模式)、t
(短时间模式)、T
(长时间模式)、file
(Windows 文件时间)、MM/dd/yy
等等。
weekday([inputformat])
以整数形式返回一周的某一天,其中周一为 0,周日为 6。
- inputformat:可选的输入格式指定符。默认为自动检测。
year([inputformat])
返回属性值所代表的日期的年份部分。
- inputformat:可选的输入格式指定符。默认值是自动检测。
示例日期格式
以下是供参考的示例日期格式字符串。 使用它们自定义日期格式化器以适合用例。 由于每个版本支持的内容存在差异,因此本部分包含 跨平台版本 和 .NET 版本 版本的结果 。
对于下表中的每个示例,日期为 2024 年 3 月 5 日。时间为北京时间 (UTC+8) 午夜后 12 小时 31 分 5 秒 336 毫秒。
日期格式 | 跨平台版本结果 | .NET 版本结果 |
MM-dd-yy | 03-05-24 | 03-05-24 |
MM/dd/yyyy HH:mm | 03/05/2024 12:31 | 03/05/2024 12:31 |
yyyy-MM-dd HH:mm:ss | 2024-03-05 12:31:05 | 2024-03-05 12:31:05 |
yyyy-MM-dd HH:mm:ss.SSS | 2024-03-05 12:31:05.336 | Not applicable for .NET |
yyyy-MM-dd HH:mm:ss.fff | 2024-03-05 12:31:05.336 | 2024-03-05 12:31:05.336 |
yyyy-MM-dd HH:mm:ss X | 2024-03-05 17:31:05 +08 | Not applicable for .NET |
ddd dd MMM yyyy HH:mm:ss zzz | Tue 05 Mar 2024 12:31:05 +08:00 | Tue 05 Mar 2024 12:31:05 +08:00 |
ddd dd MMM yyyy HH:mm:ss z | Tue 05 Mar 2024 12:31:05 +0800 | Tue 05 Mar 2024 12:31:05 +5 |
包含其它文本字符的日期格式(如:’T’)
在日期时间字符串中使用文字(如T
)时,请特别注意可能在格式化器之外使用的引号字符。 例如,如果在值 XML 属性中使用格式化器将值分配给 ArcScript 属性,则可能需要使用不同的引号样式或转义序列以避免过早终止字符串。
例如,如果要在自定义脚本中为项目的属性创建日期时间值并且需要文字,则可以选择在开始和结束之间定义该属性的值 arc:set 标签。 请注意,未设置 value=""
。
<arc:set attr="out.data">[_ | now("yyyy-MM-dd'T'HH:mm:ss")]</arc:set>