【发布时间】:2019-10-13 09:10:42
【问题描述】:
在 javascript 中,我有一个 UTC 日期,我想对其进行字符串化并解析它,但保持它是 UTC。我做了这段代码
var f = { f : new Date("Mon May 27 2019 20:11:13 GMT-0400 (Eastern Daylight Time)")}
未定义
JSON.stringify(f)
"{"f":"2019-05-28T00:11:13.000Z"}"
JSON.parse(JSON.stringify(f))
{f: "2019-05-28T00:11:13.000Z"}
你可以看到,我把它串起来之后,它变成了第二天。然后当我解析它时,它把它保存为一个字符串,甚至是第二天的字符串。我想要它,以便在我解析它之后,我得到 Mon May 27 2019 20:11:13 GMT-0400 (Eastern Daylight Time) 的 Date 对象。
有谁知道怎么回事?
谢谢
【问题讨论】:
-
时区...第二天是UTC时间。
-
日期对象是UTC,时区来自主机系统。您的“第二天”是因为 2019-05-28T00:11:13.000Z 与 2019 年 5 月 27 日 20:11:13 GMT-0400(东部夏令时间)的时间相同,因为时区有 4 小时的差异。 PS,这是许多类似问题的重复。
-
2019-05-28T00:11:13.000Z是Mon May 27 2019 20:11:13 GMT-0400 (Eastern Daylight Time)的 ISO 格式。当您尝试new Date('2019-05-28T00:11:13.000Z')时,它会创建一个您想要获取的日期。 -
有没有办法覆盖这些函数以保留时区数据并恢复我最初的原始日期?
-
只有使用库,内置日期只是一个时间值(从一个纪元开始的毫秒偏移量),它们不保存其他数据。
标签: javascript json date