java中日期做减法_Java中日期的加法和减法

8 个答案:

答案 0 :(得分: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

}

答案 1 :(得分:4)

避开日期数学的内置Date类。看看JodaTime,它有更好的API用于此类事情。

答案 2 :(得分:2)

Calendar cal = Calendar.getInstance();

cal.add(Calendar.MONTH, 5);

答案 3 :(得分:1)

要将日期转换为日历,请使用:

Date date = your_date_here;

Calendar cal = Calendar.getInstance();

cal.setTime(date);

然后使用日历算术函数进行加/减:

cal.add(Calendar.MONTH, 5);

答案 4 :(得分:0)

使用谷歌的GWT包中的CalenderUtils。

import com.google.gwt.user.datepicker.client.CalendarUtil;

...

//now

Date d = new Date();

// Now + 2 months

CalendarUtil.addMonthsToDate(d, 2);

答案 5 :(得分:0)

另一个选项是来自第三方Apache Commons库集合的DateUtils类。例如:

Date d = DateUtils.parseDate("2012-01-01", "yyyy-MM-dd");

Date d2 = DateUtils.addMonths(d, 5);

System.out.println("Old date + 5 months = " + d2);

答案 6 :(得分:0)

或者,将日期转换为milis。算一算,然后将毫秒转换回日期。

答案 7 :(得分:-1)


版权声明:本文为weixin_36371053原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。