数据库累计了大量的数据,客户急需统计出来每个月的数据,于是需要用到往年的每个月的月初及月末日期的日期。
于是有了以下代码
String year = "2020-";
for (int i = 1; i <= 12; i++) {
String month = Integer.toString(i);
if (month.length() == 1) {
month = "0" + month;
}
String beginDateOfMonth = year + month + "-01 00:00:00";
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,2020);
//设置月份
cal.set(Calendar.MONTH, i-1);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//设置日历中月份的最大天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String lastDayOfMonth = sdf.format(cal.getTime()) + " 23:59:59";
HashMap<String, Object> map = new HashMap<>();
map.put("beginDate", beginDateOfMonth);
map.put("endDate", lastDayOfMonth );
}
于是就获得了String格式的的每个月的月初和月末了,如何需要Date格式的日期就需要自己转换以下即可。
如果需要获取其他年份的月初和月末,只需要更改这两处位置即可。