This table documents interesting Date.parse test cases, classifies them by conformance (✔) vs. nonconformance (✘) with each of ISO 8601, RFC 3339, and the ECMAScript Date Time String [interchange] Format (including relevant text on hover and direct links where available), and displays the results of attempting to parse a representative example with the host implementation.

None of these cases conform to a strict interpretation of the ECMAScript Date Time String Format, and therefore each falls into the implementation-specific behavior of Date.parse. An implementation could (and in many cases should) reject them while still remaining compliant with ECMA-262.

Input ISO 8601 RFC 3339 ECMAScript Date.parse
Positive leap second
1972-06-30T23:59:60Z
Too few fractional second digits
2019-03-26T14:00:00.9Z
Too many fractional second digits
2019-03-26T14:00:00.4999Z
Too many fractional second digits (pre-epoch)
1969-03-26T14:00:00.4999Z
Too many fractional second digits (BCE)
-000043-03-15T14:00:00.4999Z
Lowercase time designator
2019-03-26t14:00Z (↓)
Lowercase UTC designator
2019-03-26T14:00z (↓)
Comma as decimal sign
2019-03-26T14:00:00,999Z
Hours-only offset
2019-03-26T10:00-04
Fractional minutes
2019-03-26T14:00.9Z
ISO basic format date and time
20190326T1400Z (↓)
Out-of-bounds day of month
2019-02-30
Time past end of day
2019-03-25T24:01Z
UTC offset too large
2019-03-26T14:00+24:00
Unused leap second opportunity
2018-06-30T23:59:60Z
Bogus leap second (not at end of month)
2019-03-26T23:59:60Z
Really bogus leap second (not even at end of UTC day)
2019-03-26T13:59:60Z
Zero UTC offset without time elements
2019-03-26Z
Positive UTC offset without time elements
2019-03-26+01:00
Negative UTC offset without time elements
2019-03-26-04:00
ISO basic format UTC offset
2019-03-26T10:00-0400
Too many expanded year digits
+0002019-03-26T14:00Z
Too few expanded year digits
+2019-03-26T14:00Z
Too many unsigned year digits
002019-03-26T14:00Z
Too few unsigned year digits
019-03-26T14:00Z
Non-Z “military” designation letter offset
2019-03-26T10:00Q
Hazardous non-Z “military” designation letter offset
2019-03-26T10:00T
Non-Z “military” designation letter offset without time elements
2019-03-26Q
Hazardous non-Z “military” designation letter offset without time elements
2019-03-26T
Space as time designator
2019-03-26 14:00Z
No digits after decimal sign
2019-03-26T14:00:00.