获取过去12个月

/**
* 获取过去12个月
*/
public static void main(String[] args) {
String[] last12Months = new String[12];
Calendar calendar = Calendar.getInstance();
//如果当前日期大于二月份的天数28天或者29天会导致计算月份错误,会多出一个三月份,故设置一个靠前日期解决此问题
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(Calendar.MONTH);
calendar = setTime();
for (int i = 0; i < 12; i++) {
// System.out.println("-----" + (calendar.get(Calendar.MONTH)));
if (calendar.get(Calendar.MONTH) != 0) {
last12Months[11 - i] = calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH));
} else {
last12Months[11 - i] = calendar.get(Calendar.YEAR) - 1 + "-" + 12;
}
// last12Months[11 - i] = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH));

// last12Months[11 - i] = (new SimpleDateFormat("yyyy-MM")).format(setTime().getTime());
//逐次往前推1个月
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);
}
for (int i = 0; i < last12Months.length; i++) {
System.out.println(last12Months[i]);
}

}

public static Calendar setTime() {
// 创建 Calendar 对象
Calendar calendar = Calendar.getInstance(); // 默认是当前日期

try {
// 对 calendar 设置时间的方法
// 设置传入的时间格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
// 指定一个日期
Date date = dateFormat.parse("2019-01");
// 对 calendar 设置为 date 所定的日期
calendar.setTime(date);

System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH));
// 按特定格式显示刚设置的时间
String str = (new SimpleDateFormat("yyyy-MM")).format(calendar.getTime());
System.out.println("=======" + str);
} catch (Exception e) {
e.printStackTrace();
}
return calendar;
}
知识兔
计算机