Time java.util.calendar->;Calendar.add()与夏令时

Time java.util.calendar->;Calendar.add()与夏令时,time,calendar,save,dst,Time,Calendar,Save,Dst,我的服务器设置为“美国/圣保罗”时区,今年10月21日开始实行夏令时 为什么我要这么做 public static void main(String[] args){ Calendar d1 = new GregorianCalendar(2012, 9, 19, 0, 0, 0); Calendar d2 = new GregorianCalendar(2012, 9, 22, 0, 0, 0); while(d1.compareTo(d2) <= 0){

我的服务器设置为“美国/圣保罗”时区,今年10月21日开始实行夏令时

为什么我要这么做

public static void main(String[] args){

    Calendar d1 = new GregorianCalendar(2012, 9, 19, 0, 0, 0);

    Calendar d2 = new GregorianCalendar(2012, 9, 22, 0, 0, 0);

    while(d1.compareTo(d2) <= 0){
        System.out.println("\nBEFORE: " + d1.getTime());
        d1.add(Calendar.DAY_OF_MONTH, 1);
        System.out.println("AFTER: " + d1.getTime());
    }


}
publicstaticvoidmain(字符串[]args){
日历d1=新的格里高利安日历(2012年9月19日0月0日);
日历d2=新的格里高利安日历(2012年9月22日0月0日);

而(d1)与(d2)相比由于圣保罗在过渡日21日没有午夜,那么21日将从凌晨1点开始。对于22日,您添加一天,然后保持凌晨1点,依此类推。为了正确起见,您应该添加从19日开始的天数,而不是按前一天计算。

以下帖子将帮助您..如果您想使用JodaTime API进行此操作