Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
None
-
Windows XP
Description
See section 3.2.7.1 of the spec at http://www.w3.org/TR/xmlschema-2/
I have a C# client sending a date/time string as "2008-03-08T23:30:43.6915406-08:00" which is an acceptable way of describing a time in the US/Pacific timezone. It looks like the code in util/src/date_time.c was recently changed, but even before it was not handling this type of date/time string.
First, it is treating the ".6915406" as milliseconds and giving me an error because it's greater than 999. This is supposed to be fractional seconds, not msec.
Second, it doesn't parse the "-08:00" at all. It is using the following to scan:
sscanf(time_str, "%d:%d:%d.%dZ", &hour, &min, &sec, &msec);
But the spec shows "''? yyyy '' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (zzzzzz)?" where the ".s+" part is the fractional seconds and "zzzzzz" can be "Z" or "+02:00" or "-08:00", etc.