Stephen, have you had a chance to look into this? -----Original Message----- From: Stephen Colebourne [mailto:[EMAIL PROTECTED] Sent: Thursday, September 25, 2008 7:46 AM To: Discussion of the Joda project Subject: Re: [Joda-interest] .withHourOfDay() behavior on DST daylight to standard transition?
This situation should have been solved in the 1.5.x releases as per the release notes. I haven't been able to run this code yet to verify the behaviour. Stephen 2008/9/24 Hotmail <[EMAIL PROTECTED]>: > Please let me know if what I found is a bug or not. I'm using version 1.5.2. > When the hour of day is set to the ambiguous hour on the daylight to > standard time transition in a given time zone what should the result be? The > daylight hour or the standard hour for all time zones? I can't find anything > that documents this behavior. > > My test code below returns different results for different time zones. > > /** > > * Verify Joda converts the hour of day the same for regions north and > south of the equator on the DST > > * daylight to standard time transition. > > */ > > @Test > > public void jodaTest () > > { > > Chronology chronUTC = > GregorianChronology.getInstance(DateTimeZone.UTC); > > DateTime usCentralStandardInUTC = new DateTime(2008, 11, 2, 7, 0, 0, > 0, chronUTC); > > DateTime usCentralDaylightInUTC = new DateTime(2008, 11, 2, 6, 0, 0, > 0, chronUTC); > > Chronology chronUSCentral = > GregorianChronology.getInstance(DateTimeZone.forID("US/Central")); > > Assert.assertTrue("Should be standard time", > chronUSCentral.getZone().isStandardOffset( > > usCentralStandardInUTC.getMillis())); > > Assert.assertFalse("Should be daylight time", > chronUSCentral.getZone().isStandardOffset( > > usCentralDaylightInUTC.getMillis())); > > DateTime usCentralStandardInUSCentral = > usCentralStandardInUTC.toDateTime(chronUSCentral); > > DateTime usCentralDaylightInUSCentral = > usCentralDaylightInUTC.toDateTime(chronUSCentral); > > assertEquals(1, usCentralStandardInUSCentral.getHourOfDay()); > > assertEquals(usCentralStandardInUSCentral.getHourOfDay(), > > usCentralDaylightInUSCentral.getHourOfDay()); > > Assert.assertTrue(usCentralStandardInUSCentral.getMillis() != > usCentralDaylightInUSCentral.getMillis()); > > DateTime australiaNSWStandardInUTC = new DateTime(2008, 4, 5, 16, 0, > 0, 0, chronUTC); > > DateTime australiaNSWDaylightInUTC = new DateTime(2008, 4, 5, 15, 0, > 0, 0, chronUTC); > > Chronology chronAusNSW = > GregorianChronology.getInstance(DateTimeZone.forID("Australia/NSW")); > > Assert.assertTrue("Should be standard time", > chronAusNSW.getZone().isStandardOffset( > > australiaNSWStandardInUTC.getMillis())); > > Assert.assertFalse("Should be daylight time", > chronAusNSW.getZone().isStandardOffset( > > australiaNSWDaylightInUTC.getMillis())); > > DateTime australiaNSWStandardInAustraliaNSW = > australiaNSWStandardInUTC.toDateTime(chronAusNSW); > > DateTime australiaNSWDaylightInAusraliaNSW = > australiaNSWDaylightInUTC.toDateTime(chronAusNSW); > > assertEquals(2, australiaNSWStandardInAustraliaNSW.getHourOfDay()); > > assertEquals(australiaNSWStandardInAustraliaNSW.getHourOfDay(), > > australiaNSWDaylightInAusraliaNSW.getHourOfDay()); > > Assert.assertTrue(australiaNSWStandardInAustraliaNSW.getMillis() != > australiaNSWDaylightInAusraliaNSW.getMillis()); > > // Verify that setting the hour of day on the DST boundary results > in a daylight time for > > // both time zones. > > assertEquals(usCentralDaylightInUSCentral, > usCentralStandardInUSCentral.withHourOfDay(1)); > > assertEquals(australiaNSWDaylightInAusraliaNSW, > > australiaNSWStandardInAustraliaNSW.withHourOfDay(2)); > > } > > The very last assertion fails on the Australia time zone cutover. > > java.lang.AssertionError: expected:<2008-04-06T02:00:00.000+11:00> but > was:<2008-04-06T02:00:00.000+10:00> > > Bryan Madsen > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Joda-interest mailing list > Joda-interest@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/joda-interest > > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Joda-interest mailing list Joda-interest@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/joda-interest ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Joda-interest mailing list Joda-interest@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/joda-interest