因为我所在的位置,JavaScript 中的日期对象始终表示为 UTC+2。因此如下所示:
Mon Sep 28 10:00:00 UTC+0200 2009
问题是进行
JSON.stringify
会将上述日期转换为2009-09-28T08:00:00Z (notice 2 hours missing i.e. 8 instead of 10)
我需要的是日期和时间被尊重,但事实并非如此,因此应该:
2009-09-28T10:00:00Z (this is how it should be)
基本上我使用这个:
var jsonData = JSON.stringify(jsonObject);
我尝试传递替换器参数(stringify 的第二个参数),但问题是值已经被处理。
我还尝试在日期对象上使用 toString() 和 toUTCString(),但这些也不能给我想要的结果...
有人能帮助我吗?
2009-09-28T10:00:00Z
和Mon Sep 28 10:00:00 UTC+0200 2009
并不代表相同的时间点。ISO 8601日期中的Z
表示UTC,UTC上的10点与+0200上的10点是不同的时间点。如果您想将日期序列化为正确的时区,则需要另行处理,但您正在要求我们将其序列化为明显、客观上错误的表示形式。 - Mark Amery