XML schema doesn't define any way to send times in a local timezone, and neither does SOAP - all times are either UTC or unzoned, and in the latter case they have to be treated as if they could be from any zone in the world. Even the time formats that people commonly mistake for representing timezones - like "1969-02-38T23:00:00-01:00" - actually are just another form of UTC since the offset value is fixed and not associated with a timezone (which has a variable offset, depending on the date). If you want to use local timezones you'll need to define your own datatype with your own custom serializers/deserializers, and these will need to be implemented for all platforms (windows, etc.) that work with your services.At the moment Axis canonicalises all dates to the UTC timezone in SOAP messages. In and of itself this is of course perfectly correct, and you would expect it to simplify things. However for us it is having the inverse effect -- you see for the years 1969 to 1972 both Ireland and Britain (and possibly other parts of Europe) maintained daylight saving time throughout the year instead of just in summer. The TimeZone class in JDK 1.4.x correctly handles this historical change, so the date "1st March 1969 00:00:00 BST" is correctly serialized to "1969-02-28T23:00:00Z". The problem is that JDK 1.3.x does not maintain historical data, so it incorrectly deserializes this to "28th February 1969, 23:00:00 GMT".
If the times were sent in the local timezone there would be less chance of triggering bugs like this in "broken" client implementations -- that is to say all JDK 1.3, JDK 1.2 and JDK 1.1 clients!
- Dennis
-- Dennis M. Sosnoski Enterprise Java, XML, and Web Services Training and Consulting http://www.sosnoski.com Redmond, WA 425.885.7197
