2017-09-07 17 views
0

JavaScriptで作成された次の日付オブジェクトを考えてみましょう。さJavascriptで間違った日付が表示されるのはなぜですか?

console.log(date); 

var date = new Date("2017-09-07T16:46:06.000Z"); 

この日付オブジェクトは、しかし、2017年9月7日4時46分06秒PM

と同等である必要があり、私は次のように入力し、ブラウザのコンソールに返さ:

金2017年9月8日午前2時46分06秒GMT + 1000(E.オーストラリア標準時)

時間が間違っています。 (実際には今日の日付ですが、時間は完全に間違っています)。混乱の

キーポイント:

  • マイコンピュータのタイムゾーンがGMT + 1000(オーストラリア/ブリスベン)に設定されている
  • 私は日付オブジェクトを作成したとき、私はので、それをタイムゾーンを指定していませんでした私はコンソールに日付オブジェクトをログインすると、私のシステムのタイムゾーン
  • に準拠している必要があり、それはまだGMT + 1000(オーストラリア/ブリスベン)が使用されているが、日付が異なる

答えて

6
です

日付を作成したとき、にタイムゾーンを指定しました。最後のZは、ズールーまたはグリニッジ標準時を意味します。お使いのコンピュータはGMTから10時間遅れているため、ローカルタイムゾーンに合わせて調整します。

日付はローカルタイムゾーンになりたい場合は、Z

+0

なければなりませんそれでは、別の瞬間を表すでしょう(OPのために10時間違う)。 – RobG

1
var date = new Date("2017-09-07T16:46:06.000Z"); 

を削除するので、それはあなたの日付文字列の末尾にZのように見えますがUTCまたはズールー時間

を表すように意図されています
var date = new Date("2017-09-07T16:46:06.000"); 

いいえ、Zを除去することがLOCとして扱われることを意味し、文字列が正しく解析されているZを削除しない正解

関連する問題