new Date
パーツに数値を使用してオブジェクトを作成すると、返される値は、「月」に入力した値よりも正確に1 か月進んでいます。
new Date(2012, 05, 17, 00, 00, 00)
Sun Jun 17 2012 00:00:00 GMT+0800 (HKT) // june?!
ただし、まったく同じ文字列の通常の解析では、正しい時刻が返されます。
new Date("2012-05-17 00:00:00")
Thu May 17 2012 00:00:00 GMT+0800 (HKT)
ie/ff/chrome でも同じ結果が得られます。時間/分/秒を削除しても効果はありません。月を設定する前に 1 を引くことで回避できますが、代わりに、日付を文字列として書き出すことに切り替えました。
編集: 文字列解析は IE では機能しません。何をしたかわかりませんが、その仕事をしたことを誓います。それは問題です。そもそも避けた理由。今のところ、moment.js を使用するように切り替えました。
あ、今わかりました。通常のJavaの日付と同じように、私はめったにコーディングしませんが、それでも常にライブラリ(jodaなど)を使用します。とにかくひどい考えです。ここで skeets が次の質問に答えます: Java Calendar で 1 月が 0 になるのはなぜですか?
なぜこうなった?