问题描述
这种日期格式有什么区别:
"2021-01-01T00:00:00.000Z"
还有这个:
"2021-01-01T00:00:00+00:00"
它们都是有效的 ISO 格式吗?当我在 JavaScript 中调用 new Date().toISOString()
时,我得到第一个。
出于某种原因,我无法就此找到明确的答案。
解决方法
来自Wikipedia:
零偏移量除了具有特殊表示形式“Z”外,还可以用数字表示为“+00:00”、“+0000”或“+00”。
,ECMA-262 定义了一个由 toISOString 生成的 "string interchange format",也必须由内置解析器解析。它指出:
Z 是 UTC 偏移表示,指定为“Z”(对于没有偏移的 UTC)或“+”或“-”后跟一个偏移量时间表达式 HH:mm(分别表示当地时间早于或晚于 UTC)
因此,当 toISOString 生成“Z”时,解析器也会接受“+00:00”和“-00:00”。任何其他格式的正确解析取决于实现(因此不可靠)。