Java中日期的加减法


问题内容

我们如何在Java中添加或减去日期?例如java.sql.Date,格式如下: yyyy-MM-dd
,我如何从中添加5个月?我在某些教程中看到他们正在使用Calendar,我们可以在上面设置日期吗?请帮忙。

示例:2012-01-01添加5个月后将变为2012-06-01

PS:我是.Net程序员,正在慢慢学习Java环境。


问题答案:

首先,您必须将String日期转换为java.util.Date,而不是必须要用它java.util.Calendar来处理日期。也可以对毫秒进行数学运算,但是我不建议这样做。

public static void main( final String[] args ) throws ParseException {
    final String sdate = "2012-01-01";
    final SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd" );
    final Date date = df.parse( sdate ); // conversion from String
    final java.util.Calendar cal = GregorianCalendar.getInstance();
    cal.setTime( date );
    cal.add( GregorianCalendar.MONTH, 5 ); // date manipulation
    System.out.println( "result: " + df.format( cal.getTime() ) ); // conversion to String
}