ISO 格式“+00:00”和“Z”之间的区别?

jby*_*yrd 7 javascript datetime iso date datetime-format

这种日期格式有什么区别:

"2021-01-01T00:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)

和这个:

"2021-01-01T00:00:00+00:00"
Run Code Online (Sandbox Code Playgroud)

它们都是有效的 ISO 格式吗?当我调用new Date().toISOString()JavaScript 时,我得到了第一个。

出于某种原因,我很难找到明确的答案。

Que*_*tin 6

来自维基百科

零偏移量除了具有特殊表示“Z”之外,还可以用数字表示为“+00:00”、“+0000”或“+00”。

  • 注意:“-00:00”可能有不同的含义(IIRC 和 RFC 将其定义为“未知时区”,但作为解决方法,保持与 ISO 表示法兼容) (2认同)

Rob*_*obG 0

ECMA-262 定义了一种由toISOString生成的“字符串交换格式”,并且还必须由内置的\xe2\x80\x93in 解析器进行解析。它指出:

\n
\n

Z是 UTC 偏移量表示,指定为“Z”(对于没有偏移量的 UTC)或“+”或“-”偏移量,后跟时间表达式 HH:mm(分别表示本地时间早于或晚于 UTC)

\n
\n

因此,当toISOString生成“Z”时,解析器还将接受“+00:00”和“-00:00”。任何其他格式的正确解析取决于实现(因此不可靠)。

\n