[OSM-dev] OSM Date Formats
brett at bretth.com
Mon Oct 1 14:58:26 BST 2007
This probably should go to Frederik but I'll post it here anyway in case
others are interested or have issues/comments.
I've attached a patch to JOSM modifying its date handling. This patch
copies in most of the osmosis date handling code which I think is an
improvement on the existing JOSM date handling code.
Firstly it modifies JOSM to write dates in UTC XML format. I would have
used XmlGregorianCalendar but it includes millisecond information and I
can't find a way to remove it. I've written a custom formatter
instead. It has a bug when writing dates before baby Jesus was visited
by the wise men (ie. BC dates require a negative year in XML) but I
haven't found any data that old in the OSM database so I didn't bother
The existing date writer just wrote a date without timezone information
so JOSM was always applying local timezone to dates. This is okay for
normal editing but not good if you load files written in another timezone.
It also fixes the date parser. The existing parser wasn't making use of
XmlGregorianCalendar which takes care of all xml date formats. I've
updated it to first try my custom parser used in osmosis and if that
doesn't recognise the format to fallback to XmlGregorianCalendar and
finally to fall back to the old JOSM parser (a slightly modified version
of it). Given that parse performance isn't an issue for JOSM sized
files, the custom bit could probably be deleted but note that the
XmlGregorianCalendar performance is atrocious on UTC dates (not so bad
for dates with an offset) for reasons which I won't go into here.
The existing parser can't parse 2007-01-12T13:46:40Z properly, it loses
10 hours when I run it in Australia because it loses the fact that it is
GMT. This is a fairly major bug which is now fixed.
I've done some basic testing and it "works for me".
I have no idea if it follows all the relevant JOSM coding styles and
exception handling in particular isn't ideal but I've followed the lead
of the existing JOSM code.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 15354 bytes
Desc: not available
More information about the dev