日期的加减计算

时间:2022-09-22 15:59:22
     //第一次写的时候,简单的以为就是数字的加减,后来运行中出现20171100这种日期,直接报错,反应过来。必须要用日期计算
//接收前台参数,日期类型为String,格式为yyyyMMdd;
String date=String.valueOf(Integer.parseInt("20171011"));
StringBuffer ss=new StringBuffer();
ss.append(date.substring(0, 4));
ss.append("-");
ss.append(date.substring(4, 6));
ss.append("-");
ss.append(date.substring(6,8));
String beginDate=ss.toString();//日期格式变为yyyy-MM-dd


SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
//ParsePosition 是Format及其子类所使用的简单类,用来分析过程中跟踪当前位置.
ParsePosition pos = new ParsePosition(0);// 从第一个字符开始解析
//对参数strDate(String类型) 从第一个字符开始解析(由pos),转换成java.util.Date类型,
//而这个Date的格式为"yyyy-MM-dd";
Date startDate = formatter.parse(beginDate, pos);

//目标日期(yyyyMMdd) 得到前一天的日期
String targetDay=(formatter.format(new Date(startDate.getTime() - (long)1* 24 * 60 * 60 * 1000))).replace("-", "");
System.out.println(targetDay);// 这里打印结果为20171010