2

我是java世界的新手。我正在学习和探索java日历类,它是一个由工厂方法get instance()组成的抽象类。我试图增加或减少日期,例如在当前日期加上一天以获得明天的日期,减去一天以获得昨天的日期等。由于 Java 中的日期被维护为长毫秒值,有时程序员倾向于添加24 小时为一天。如果这一天落在夏令时区,这可能是错误的,一天可能是 23 或 25 小时。当您从日期中添加或减去天数时,日期的其他组成部分(例如月份和年份)必须滚动。

我的查询如下所示。在课堂上,我试图加减天数。请告知,这是正确的方法还是您会建议的其他更好的方法。

    //Using Calendar to increment and decrement days from date in Java
     Date today = new Date(); 
    System.out.println("Today is " + toddMMyy(today)); 
    Calendar cal = Calendar.getInstance(); //adding one day to current date cal.add(Calendar.DAY_OF_MONTH, 1); 
    Date tommrrow = cal.getTime(); 
    System.out.println("Tomorrow will be " + toddMMyy(tommrrow)); //substracting two day from date in Java
    cal.add(Calendar.DAY_OF_MONTH, -2); 
Date yesterday = cal.getTime(); System.out.println("Yesterday was " + MMyy(cal.getTime()));
4

1 回答 1

1

你是正确的。这就是我们使用 Date 毫秒算术时发生的情况

     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
     Date d1 = df.parse("2013-03-30 12:00");
     Date d2 = new Date(d1.getTime() + 24 * 3600 * 1000);  // +24 hrs
     System.out.println(df.format(d2));

输出

2013-03-31 13:00
于 2013-04-05T03:15:12.157 回答