获取往年每个月的月初及月末日期

352 阅读1分钟

数据库累计了大量的数据,客户急需统计出来每个月的数据,于是需要用到往年的每个月的月初及月末日期的日期。

于是有了以下代码

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格式的日期就需要自己转换以下即可。

如果需要获取其他年份的月初和月末,只需要更改这两处位置即可。

image.png image.png