JSON Stringify mění čas data kvůli UTC

Moje objekty data v JavaScriptu jsou vždy reprezentovány UTC +2 kvůli tomu, kde se nacházím. Proto takto

Mon Sep 28 10:00:00 UTC+0200 2009

Problémem je provedení JSON.stringify převede výše uvedené datum na

2009-09-28T08:00:00Z  (notice 2 hours missing i.e. 8 instead of 10)

Potřebuji, aby bylo dodrženo datum a čas, ale není tomu tak, proto by to mělo být

2009-09-28T10:00:00Z  (this is how it should be)

V zásadě používám toto:

var jsonData = JSON.stringify(jsonObject);

Zkoušel jsem předat náhradní parametr (druhý parametr na stringify), ale problém je v tom, že hodnota již byla zpracována.

Zkoušel jsem také použít toString() a toUTCString() na datovém objektu, ale ani ty mi nedávají to, co chci..

Může mi někdo pomoci?

Odpověď

Nedávno jsem narazil na stejný problém. A bylo to vyřešeno pomocí následujícího kódu:

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