日付と時刻のコレクションがあります。日付の文字列をタイムゾーン付きのISO日付に変換する
01.07.2013 16:10
のようにフォーマットされています。
私はISO規格に適合するように再配置する必要があります知っているので、私はこのような文字列で終わるために管理:
2013-07-01T16:10
。
これから、Date
オブジェクトを作成する必要があります。これについて多くの質問を読んだ後、私はこれにタイムゾーンを追加する方法について少し混乱しています。すべての時間はニューヨークシティの現地時間であり、日付も保存したい。
Javascriptは自分のマシンからタイムゾーンを取っているので、NYCからタイムゾーンに変更した。ただし、以下の部分は私が混乱最も:
> print(new Date("2013-07-01T16:10"))
Mon Jul 01 2013 16:10:00 GMT+2000 (EDT)
質問:私のローカルタイムがGMT-0400(NYCの1)があるのに、なぜそれがGMT + 2000と言っていますか?これは正しいです'?そうでない場合、これはどのように正しく行われますか?
- アップデート: 私はmongoDB 3.4.4
を使用しており、インタプリタのバージョンはMozJS-38
です。 systemsetup -gettimezone
はAmerica/New_York
を返します。クロムでモンゴーエクスプレスを実行すると、ISODate("2013-07-01T04:00:00.000Z")
のMon Jul 01 2013 06:00:00 GMT+0200 (EDT)
が保存されますが、シェルはprint(new Date("2013-07-01T04:00:00.000Z"));
の場合はTue Jul 02 2013 00:00:00 GMT+2000 (EDT)
と表示されます。
「GMT + 2000」と正確には分かりますか?その場合は、マシンのタイムゾーンデータが破損しています。 GMTより20時間遅れている場所はありません。また、ニューヨークはその形式で「GMT-0400」となるでしょう。ここにゼロを入力していないのですか? –
はい私は確信しています。はい、GMT-0400と期待しました。私はMacOSを使用している、タイムゾーンを変更した後に再起動しなかった。多分、これが原因です。 – ffritz
[OK]をクリックしますが、GMT-4000を書きましたので、間違った位置にゼロがあります。 '' GMT + 2000 ''でも同じことをしていないのですか?あなたは '' GMT + 0200 ''を意味しましたか? –