読者です 読者をやめる 読者になる 読者になる

JavaScriptのDate.parseの仕様

本当はQiitaに書こうと思ったが,不正確な内容が含まれるためこっちに書いた.
正直意味がわからない.


はじめに,Date.parse("2016/05/20")とDate.parse("2016-05-20")は同じ値になるだろうか.
恐らくならないと思う.
「恐らく」と述べたのには2つの意味があり,1つは「恐らく」前者がローカルタイムゾーン基準での2016年5月20日0時0分0秒,後者がGMTでの2016年5月20日0時0分0秒となるエポックミリ秒が返ってくるため,GMTで生活している場合は同じになる,という意味であり,もう1つはその仕様がどこに書いてあるのか見つからなかったためである.
一応
ECMAScript 2015 Language Specification – ECMA-262 6th Edition

RFC 2822 - Internet Message Format
に目をあっさりと通したつもりだが本当にないのかはわからない.

では,次のdateStringをDate.parseに渡した場合どのような日時が返ってくるだろうか.
以下では断りのない限りGMTで記述することにし,ローカルタイムゾーンJSTとする.
ブラウザはChrome, Firefox, Edgeで試した.

1問目

"05/20/2016"


2問目

"05-20-2016"


3問目

"2016/05/32"


4問目

"2016-05-32"


5問目

"12/05/11"


6問目

"70/05/11"


7問目

"70-05-11"


8問目

"2015/11/2014"


こんな結果ということは,仕様書には書いてなさそうだ.
ちなみにNode.jsはChromeと同じJavaScriptエンジンを用いているので当然同じ結果であった.