说明
今天有个数据处理要将日期格式为yyyy-MM-dd的日期要向前推1个月后,取那个月最后一天日期,我这里记录下这个方法,留着以后需要的时候再用。
代码
方法即可向前推也可向后推日期。
@GetMapping("/test111")
public String test111(HttpServletRequest request){
String date = request.getParameter("date");
String num = request.getParameter("num");
return getXMonthLastDate(date,Integer.parseInt(num));
}
//将日期格式yyyy-MM-dd格式向前推X个月或者向后推X个月后取最后一天的方法
public String getXMonthLastDate(String date,int month){
Calendar calendar=Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
//将传过来的日期设置给calendar
calendar.setTime(sdf.parse(date));
//System.out.println("当前日期="+sdf.format(calendar.getTime()));
//将传过来的月份减去X个月或者加上X个月
calendar.add(Calendar.MONTH, month);
//System.out.println("向前推12月之前的日期="+sdf.format(calendar.getTime()));
//获取月的最后一天日期
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
}catch (Exception e){
e.printStackTrace();
}
return sdf.format(calendar.getTime());
}
postman调用该方法后,返回如下:
向前推1个月示例:
向后推1个月示例:
本月最后一天示例: