1. 依据以后工夫获取指定N个月之前的月份第一天。

      /*** 依据以后日期,获取以后月前5个月的开始日期* 以后日期为2021-10-5号 返回后果是 2021-05-01 00:00:00** @param earlyMonth 提前几个月工夫 earlyMonth = 5* @return 2021-05-01 00:00:00*/  private String getStartDateTime(Integer earlyMonth) {   LocalDateTime date = LocalDateTime.now().minusMonths(earlyMonth);   LocalDateTime firstDay = date.with(TemporalAdjusters.firstDayOfMonth());   String firstDayStr = firstDay.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));   log.info("firstDayStr:{}", firstDayStr);   return firstDayStr;  }
  2. 获取以后日期开始前N个月的第一天的零时零分零秒开始,这个写法比下面的更优雅
@Test    public void test1() {        Integer earlyMonth = 5;        LocalDateTime date = LocalDateTime.now()                .minusMonths(earlyMonth)                .withDayOfMonth(1)                .withHour(0)                .withMinute(0)                .withSecond(0)                .withNano(0);        System.out.println("firstDayStr:" + date);        // 输入后果 firstDayStr:2021-12-01T00:00    }
  1. 待补充