[kaffe] Bug report: java.text.SimpleDateFormat#parse

Ito Kazumitsu ito.kazumitsu at hidec.co.jp
Thu Jan 27 19:02:54 PST 2005


Hi,

In message "Re: [kaffe] Bug report: java.text.SimpleDateFormat#parse"
    on 05/01/27, Dalibor Topic <robilad at kaffe.org> writes:


> Thanks Ito, I've applied your patch, as Andrew applied it to Classpath. 
> The regression test still fails for me, unfortunately.

This failure occurs with a time zone that has DST.

$ kaffe -Duser.timezone=JST DateFormatTest
Same time zone
Different time zone
$ kaffe -Duser.timezone=PST DateFormatTest
Same time zone
Different time zone
Dates don't match? Thu Oct 28 06:00:27 America/Los_Angeles 2004 != Thu Oct 28 05:00:27 America/Los_Angeles 2004

And it can be explained as follows:

JST (Zone offset = 9, DST offset = 0)

 java.text.SimpleDateFormat#parse     java.util.GregorianCalendar#computeTime 
   Parsed         Zone    DST         Zone        DST        Result in GMT/JST
   string         offset  offset      offset      offset
   13:00GMT+00:00 00:00   -           00:00*[1]   00:00*[2]  13:00 / 22:00

     [1] rawOffset = fields[ZONE_OFFSET] because isSet[ZONE_OFFSET]
     [2] dstOffset = 0 (DST offset of JST) because !isSet[DST_OFFSET]

PST (Zone offset = -8, DST offset = 1)

 java.text.SimpleDateFormat#parse     java.util.GregorianCalendar#computeTime 
   Parsed         Zone    DST         Zone        DST        Result in GMT/PDT
   string         offset  offset      offset      offset
   13:00GMT+00:00 00:00   -           00:00*[1]   01:00*[2]  12:00 / 05:00

     [1] rawOffset = fields[ZONE_OFFSET] because isSet[ZONE_OFFSET]
     [2] dstOffset = 1 (DST offset of PST) because !isSet[DST_OFFSET]

I should have added

  calendar.set (Calendar.DST_OFFSET, 0);

to the part where "GMT+xx:yy" is being parsed, not only just swapping
Calendar.DST_OFFSET and Calendar.ZONE_OFFSET.

By the way,

Dates don't match? Thu Oct 28 06:00:27 America/Los_Angeles 2004 != Thu Oct 28 05:00:27 America/Los_Angeles 2004
       ^^^^^^^^^^^^^^^^^^^

why "America/Los_Angeles" appears instead of "PDT" is explained in
    http://www.kaffe.org/pipermail/kaffe/2005-January/101286.html
    http://lists.gnu.org/archive/html/classpath/2005-01/msg00200.html




More information about the kaffe mailing list