1. ホーム
  2. javascript

[解決済み] JSON StringifyはUTCのために日付の時間を変更する

2022-09-14 06:45:06

質問

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);

replacerパラメータ(stringifyの2番目のパラメータ)を渡してみましたが、問題は値がすでに処理されていることです。

また toString()toUTCString() を使用することができますが、これらは私が欲しいものを与えてくれません。

誰か私を助けてくれますか?

どのように解決するのですか?

最近、私は同じ問題に遭遇しました。そして、それは以下のコードを使って解決しました。

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