-
依据以后工夫获取指定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
}
- 待补充
发表回复