因最近在写代码的时候遇到了获取上个月月份的问题YYYYMM这个格式,根据给的工具类,获取出来的值是有问题的,所以记录以下。
问题方法
/**
* 获取上个月的月份
* 该方法有问题 三月份的29 30 31 有bug
* @return
*/
public static final String getLastMonth() {
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
Date date = new Date();
Calendar calendar = Calendar.getInstance();
// 设置为当前时间
calendar.setTime(date);
// 设置为上一个月
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);
date = calendar.getTime();
return format.format(date);
}
正确的方法
/**
* 获取上个月月份
* @return
*/
public static final String getLastMonth() {
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
Date date = new Date();
Calendar calendar = Calendar.getInstance();
// 设置为当前时间
calendar.setTime(date);
calendar.add(Calendar.MONTH,-1);
// 设置为上一个月
//calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);
date = calendar.getTime();
return format.format(date);
}