一尘不染

JSON Stringify由于UTC更改日期时间

javascript

由于我所在的位置,我在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上的第二个参数),但问题是该值已被处理。

我也尝试在date对象上使用toString()and toUTCString(),但是这些也不能给我我想要的东西。

谁能帮我?


阅读 399

收藏
2020-05-01

共1个答案

一尘不染

最近,我遇到了同样的问题。并使用以下代码解决了该问题:

x = new Date();
let hoursDiff = x.getHours() - x.getTimezoneOffset() / 60;
let minutesDiff = (x.getHours() - x.getTimezoneOffset()) % 60;
x.setHours(hoursDiff);
x.setMinutes(minutesDiff);
2020-05-01