Java日历/时间戳添加问题

Java日历/时间戳添加问题,java,calendar,timezone,Java,Calendar,Timezone,我试图在java.sql.Timestamp上连续添加4个小时。 代码如下: Timestamp period = Timestamp.valueOf("2011-10-01 00:00:00"); Timestamp finish = Timestamp.valueOf("2011-12-31 00:00:00"); Calendar calendar = Calendar.getInstance(); while (period.before(finish)) { calenda

我试图在java.sql.Timestamp上连续添加4个小时。 代码如下:

Timestamp period = Timestamp.valueOf("2011-10-01 00:00:00");
Timestamp finish = Timestamp.valueOf("2011-12-31 00:00:00");

Calendar calendar = Calendar.getInstance();

while (period.before(finish)) {
    calendar.setTimeInMillis(period.getTime());
    calendar.add(Calendar.HOUR_OF_DAY, 4);
    period.setTime(calendar.getTimeInMillis());
    System.out.println(period);
}
输出应为时间戳列表,如:

2011-10-02 00:00:00.0
2011-10-02 04:00:00.0
2011-10-02 08:00:00.0
2011-10-02 12:00:00.0
2011-10-02 16:00:00.0
2011-10-02 20:00:00.0
2011-10-03 00:00:00.0
2011-10-03 04:00:00.0
2011-10-03 08:00:00.0
2011-10-03 12:00:00.0
2011-10-03 16:00:00.0
2011-10-03 20:00:00.0
2011-10-04 00:00:00.0
工作至2011年10月30日,增加3小时,而不是4小时:

2011-10-29 08:00:00.0
2011-10-29 12:00:00.0
2011-10-29 16:00:00.0
2011-10-29 20:00:00.0
2011-10-30 00:00:00.0
2011-10-30 03:00:00.0
2011-10-30 07:00:00.0
2011-10-30 11:00:00.0
2011-10-30 15:00:00.0
2011-10-30 19:00:00.0

谢谢

你试过不同的日期吗,比如六月的某个时候?这可能是夏令时的问题吗?2011年10月30日才产生了这个bug,但我需要这个日期,这不是bug。日历很好用。10月30日是2011年夏令时的转换日。那我怎么解决这个问题呢?你不能解决时间问题。你试过不同的日期吗,比如六月的某个时间?这可能是夏令时的问题吗?2011年10月30日才产生了这个bug,但我需要这个日期,这不是bug。日历很好用。10月30日是2011年夏令时的转换日。那我怎么解决这个问题呢?你不能解决时间问题。