Java中日期的加法和减法

Joh*_*Woo 8 java datetime date

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

示例:2012-01-01添加5个月后即可2012-06-01.

PS:我是一名.Net程序员,并慢慢学习Java环境.

Bet*_*sta 13

首先,您必须将String日期转换为java.util.Date,而不是必须java.util.Calendar用来操纵日期.也可以用millis做数学,但我不推荐这个.

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
}
Run Code Online (Sandbox Code Playgroud)