Javascript 与ISO 8601相比,ECMAScript 5日期格式简化了哪些内容

Javascript 与ISO 8601相比,ECMAScript 5日期格式简化了哪些内容,javascript,datetime,ecmascript-5,iso8601,Javascript,Datetime,Ecmascript 5,Iso8601,ECMAScript基于ISO 8601扩展格式的简化定义了日期时间的字符串交换格式。格式如下:YYYY-MM-DDTHH:MM:ss.sssZ - 那么这两种格式之间到底有什么区别呢?我需要注意什么?我注意到ISO 8601规定T可以用空格代替。还有什么是“简化” 具体来说:这个问题是关于标准的。浏览器行为很有趣,但不是这个问题的主要焦点。是一系列时间和日期格式的标准,包括: 日期 一天中的时间 协调世界时(UTC) 偏移到UTC的本地时间 日期和时间 时间间隔 重复时间间隔 本规范(20

ECMAScript基于ISO 8601扩展格式的简化定义了日期时间的字符串交换格式。格式如下:YYYY-MM-DDTHH:MM:ss.sssZ
-

那么这两种格式之间到底有什么区别呢?我需要注意什么?我注意到ISO 8601规定
T
可以用空格代替。还有什么是“简化”

具体来说:这个问题是关于标准的。浏览器行为很有趣,但不是这个问题的主要焦点。

是一系列时间和日期格式的标准,包括:

  • 日期
  • 一天中的时间
  • 协调世界时(UTC)
  • 偏移到UTC的本地时间
  • 日期和时间
  • 时间间隔
  • 重复时间间隔
本规范(2017版中的20.3.1.16)仅实现了日期和时间。

为日期和时间定义了许多不同的格式,如:

  • 扩展(与ECMA使用的相同):
    YYYY-MM-DDTHH:MM:ss.sssZ
  • 基本(与上面相同,但没有
    -
    分隔符):
    YYYYMMDDTHHmmss.sssZ
还有变化:只有日期,只有时间,有无偏移。如果日期使用上述(基本或扩展)之一,则时间必须使用相同的时间

它还允许日期的其他格式(ECMA不使用):

  • “不完整”日期:
    • 仅年份:
      YYYY
      ,或编号前带有
      +
      -
      信号的扩展版本
    • 仅年份和月份:
      YYYY-MM
    • 只有月份和日期:
      --MM-DD
  • YYYY Www
    yyy-Www-D
    Www
    周编号(大写
    W
    后接两位数字),但在本例中
    yyy
    是ISO周编号年份-引用维基百科:
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分钟”),间隔是“两个时间点之间的间隔时间”(包括开始日期和结束日期)。

请注意,Safari似乎不喜欢用空格分隔的版本,但可以在地球上的任何其他浏览器中使用<代码>新日期('2017-08-15 09:00')失败惨重。