2013-04-05 72 views
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

唯一的补充建议我会做是为了看看[乔达时间](HTTP://乔达时间。 sourceforge.net/) – MadProgrammer 2013-04-05 03:00:40

回答

1

你是对的。这是当我们使用日期毫秒算术发生了什么

 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