ウィキペディアのISO-8601の記事によると(私は知っている、悪い情報源)...
時間表現でUTC関係情報が指定されていない場合、時間は現地時間であると見なされます。
したがって、たとえば..与えられた:
- var a = Date.parse( "2012-03-21");
- var b = Date.parse( "2012-03-21T00:00");
- var c = Date.parse( "2012-03-21T00:00Z");
「a」と「b」は現地時間(ブラウザのタイムゾーン)であり、「c」はUTCであると思います。ただし、a、b、およびcはすべて同等です(1332288000000)。すべての値はUTCとして解析されます。
ECMAScript仕様には、次のことも明確に記載されています。
15.9.1.15日時文字列形式
不在のタイムゾーンオフセットの値は「Z」です。
なぜこの不一致があるのですか?ウィキペディアは正しくありませんか、それともECMAScriptの仕様ですか?(ブラウザのタイムゾーンを知らなくても)ブラウザでISO-8601文字列を現地時間にどのように解析しますか?