日期处理(跨月/跨年)
输入起始日期和终止日期(日期样式:2020-10-12),例如处理成:202002,202003…
//分割历史表名称的表尾时间参数(201901---分开后的时间)
List<String> timeList = getTimeList(start, end);
/**
* 日期处理(跨月/跨年)
*/
public static List<String> getTimeList(String startDate, String endxDate) {
SimpleDateFormat sdf;
int calendarType;
switch (startDate.length()) {
case 10:
sdf = new SimpleDateFormat("yyyy-MM-dd");
calendarType = Calendar.DATE;
break;
case 7:
sdf = new SimpleDateFormat("yyyy-MM");
calendarType = Calendar.MONTH;
break;
case 4:
sdf = new SimpleDateFormat("yyyy");
calendarType = Calendar.YEAR;
break;
default:
return null;
}
List<String> timeData = new ArrayList<>();
Calendar min = Calendar.getInstance();
Calendar max = Calendar.getInstance();
try {
min.setTime(sdf.parse(startDate));
min.add(calendarType, -1);
max.setTime(sdf.parse(endxDate));
max.add(calendarType, 0);
} catch (ParseException e) {
logger.error("getTimeList", e);
}
Calendar curr = max;
while (curr.after(min)) {
timeData.add(sdf.format(curr.getTime()).replace("-", ""));
curr.add(calendarType, -1);
}
return timeData;
}```