java中关于date类型的时间加减年月日的处理方法
//1.时间加月(天数超过,不做处理,默认月份的最后一天)
//定义时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//开始时间(字符串类型)
String date = "2021-08-31 12:12:12";
//开始时间(date类型)
Date actualStartDate = sdf.parse(date);
Calendar c = Calendar.getInstance();
c.setTime(actualStartDate);
//开始时间加6个月,最终结果 2022-02-28 12:12:12
c.add(Calendar.MONTH, 6);
//开始时间减2个月,最终结果 2021-06-30 12:12:12
//c.add(Calendar.MONTH, -2);
String format = sdf.format(c.getTime());
System.out.println(format);
//2.时间加月(天数超过,做处理,月份加1,天数累加)
//定义时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//开始时间(字符串类型)
String date = "2021-08-31 12:12:12";
//开始时间(date类型)
Date actualStartDate = sdf.parse(date);
Calendar c = Calendar.getInstance();
c.setTime(actualStartDate);
//开始时间加6个月,最终结果 2022-03-03 12:12:12
c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 6);
//开始时间减2个月,最终结果 2021-07-01 12:12:12
//c.set(Calendar.MONTH, c.get(Calendar.MONTH) - 2);
String format = sdf.format(c.getTime());
System.out.println(format);
同理:对于天和年也是一样的,只需要使用Calendar.DAY_OF_MONTH和Calendar.YEAR