[
https://issues.apache.org/jira/browse/AXIS2C-1049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dave Meier updated AXIS2C-1049:
-------------------------------
Attachment: diff.txt
Hi Senaka,
I attached a diff file as date_time.c failed to compile. The diff shows what I
changed to make it compile.
Also, I have some other comments:
1. The ".%d" part that comes after the seconds is optional, so you first must
check if there is a "." in the string and then parse accordingly. This is
fractional seconds, not msec. So it needs to be converted to a value between 0
and 999 msec (e.g. ".6903043" is 690 msec).
2. You could scan for either "+" or "-" by using a %c and scanning it into a
character. This would save having two sscanf lines where one handles "+" and
one handles "-". I think if you do this you can then have one sscanf for
handling ".%d" and one that doesn't have the ".%d". So you would have:
"%d-%d-%dT%d:%d:%d.%d%c%d:%d" and "%d-%d-%dT%d:%d:%d%c%d:%d" where the second
one has no ".%d".
Thanks,
-Dave.
> Axis2/C does not handle timezone offsets or fractional seconds correctly
> ------------------------------------------------------------------------
>
> Key: AXIS2C-1049
> URL: https://issues.apache.org/jira/browse/AXIS2C-1049
> Project: Axis2-C
> Issue Type: Bug
> Components: util
> Affects Versions: Current (Nightly)
> Environment: Windows XP
> Reporter: Dave Meier
> Assignee: Senaka Fernando
> Priority: Blocker
> Fix For: Current (Nightly)
>
> Attachments: diff.txt
>
>
> 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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]