与ISO 8601相比,ECMAScript 5日期格式简化了什么
ECMAScript根据ISO 8601扩展格式的简化定义了日期时间的字符串交换格式。 格式如下:YYYY-MM-DDTHH:mm:ss.sssZ
- https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15
那么这两种格式之间究竟有什么区别呢? 我必须注意些什么? 我注意到ISO 8601指出T
可以用空格代替。 还有什么是“简化”?
非常具体:这个问题是关于标准。 浏览器行为很有趣,但不是这个问题的主要焦点。
ISO 8601为日期和时间定义了许多不同的格式,例如:
YYYY-MM-DDTHH:mm:ss.sssZ
-
和:
分隔符): YYYYMMDDTHHmmss.sssZ
还有变化:只是日期,只是时间和有无偏移量。 如果日期使用上述(基本或扩展)之一,则时间必须相同。
并且它还允许其他格式的日期(ECMA不使用):
YYYY
,或者在数字前带有+
或-
信号的扩展版本 YYYY-MM
--MM-DD
YYYY-Www
或YYYY-Www-D
。 Www
是星期编号 (大写字母W
后跟2位数字),但本例中的YYYY
是ISO星期编号年 - 引用wikipedia: ISO星期编号年从01周的第一天(星期一)开始,到新ISO年之前的星期日结束(因此没有重叠或缺口)。 它由52周或53周组成。 一年中的第一个ISO周最多可能有三天,实际上是在公历结束的一年; 如果三个,他们是星期五,星期六和星期天。 同样,一年的最后一个ISO周最多可能有三天,实际上是公历开始的一年; 如果三个,他们是星期一,星期二和星期三。 每个ISO星期的星期四总是在由ISO星期编号年表示的公历年。
YYYY-DDD
( 年份和一年中的 某一天 )。 例如:
2017-02-01
与2017-032
相同( 2月1 日是每年的第32天 )。 上面的星期和有序格式也可以使用一段时间。
例如: 2017-02-01T10:00
和2017-032T10:00
都是有效的(和等效的)。
ECMA通过仅允许YYYY-MM-DDTHH:mm:ss.sssZ
简化它。 它也允许延长的年份(6位数字和一个信号),但保持其他字段的相同格式。
ISO 8601还定义了另一个概念(持续时间和时间间隔)。 尽管它们都与日期和时间有关,但它们并不是一回事:持续时间是“时间量”(如“2天,4小时和5分钟”),间隔是“介入时间两个时间点“(开始和结束日期)。
ISO 8601是一整套时间和日期格式的标准,包括:
ECMA-262规范(2017版中的20.3.1.16)仅实现日期和时间。
链接地址: http://www.djcxy.com/p/35115.html上一篇: What is simplified in ECMAScript 5 date format compared to ISO 8601
下一篇: Should ISO 8601 datetime for xCBL include dashes or not?