Hi there, I ran into a problem with the roll method of GregorianCalendar class. Suppose the date is April 6, 00:00:00 2002, the following code will go throught the time changes: GregorianCalendar cal = new GregorianCalender(); for (int i = 0; i < 24; i++) { cal.roll(Calenader.HOUR_OF_DAY, 1); } April 6 01:00:00 2002 April 6 02:00:00 2002 ................. April 6 22:00:00 2002 April 6 23:00:00 2002 April 6 00:00:00 2002 But if the current date is April 7, 2002 (daylight saving time change will occur at 2:00 am this day), the above code will result: April 7 01:00:00 2002 April 7 02:00:00 2002 ................. April 7 22:00:00 2002 April 7 23:00:00 2002 April 6 23:00:00 2002 April 6 00:00:00 2002 Can anyone tell me how to fix this problem or how to avoid this problem. Thanks a lot.