New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OffsetDateTime JSON serialisation format is not parsable in JavaScript #284

Closed
GoogleCodeExporter opened this Issue Mar 15, 2015 · 4 comments

Comments

Projects
None yet
2 participants
@GoogleCodeExporter

GoogleCodeExporter commented Mar 15, 2015

As noted in http://stackoverflow.com/q/23828573, the JSON serialisation format 
for OffsetDateTime produces output such as "2014-05-16T07:28:51+02" (it uses 
OffsetDateTimePattern.ExtendedIsoPattern).

However, ECMA-262 requires that the offset be specified including the minutes 
(see http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15), and at 
least Chrome fails to parse the string otherwise:

> Date.parse("2014-05-16T07:28:51+02")
NaN
> Date.parse("2014-05-16T07:28:51+02:00")
1400218131000

(The spec _also_ requires the milliseconds field, if present, to be three 
decimals, rather than the six we generate. However, that appears not to cause 
trouble in practice, so we might not want to change that.)

While JSON doesn't necessarily mean that you're parsing with JavaScript, it 
seems reasonable to at least consider changing the serialization format to 
always include the minutes.

Original issue reported on code.google.com by malcolm.rowe on 24 May 2014 at 9:04

@GoogleCodeExporter

This comment has been minimized.

GoogleCodeExporter commented Mar 15, 2015

Right.  I believe this is also a requirement of RFC3339.

Original comment by mj1856 on 24 May 2014 at 4:39

@GoogleCodeExporter

This comment has been minimized.

GoogleCodeExporter commented Mar 15, 2015

Original comment by malcolm.rowe on 30 May 2014 at 8:37

  • Added labels: Milestone-1.3.0
  • Removed labels: Milestone-1.3-consider
@GoogleCodeExporter

This comment has been minimized.

GoogleCodeExporter commented Mar 15, 2015

Fixed the Json.NET representation in revision a24b462035cd.
However, I've just tried this for the XML representation, and that has the same 
issue - in particular, the conversion from XElement to DateTimeOffset fails 
unless the offset is in HH:mm format.

It's unfortunate that we won't be able to round-trip values, but I think we 
should change the XML representation too...

Original comment by jonathan.skeet on 30 May 2014 at 4:49

@GoogleCodeExporter

This comment has been minimized.

GoogleCodeExporter commented Mar 15, 2015

XML representation changed in revision ce2d2662a0b0. I think we're done now; 
I'm not changing any non-serialization formats at the moment.

Original comment by jonathan.skeet on 31 May 2014 at 1:24

  • Changed state: Fixed

@malcolmr malcolmr added the bug label Mar 15, 2015

@malcolmr malcolmr modified the milestone: 1.3.0 Mar 15, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment