-
依据以后工夫获取指定 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; }
- 获取以后日期开始前 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
}
- 待补充