公司某统计需求需要统计当月的业务表,在mysql内调函数可能会有性能问题,故直接在java端获取时间。
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// string转LocalDateTime
LocalDateTime dateTime = LocalDateTime.parse("2022-04-25 19:14:55",df);
// 获取当前月的第一天开始
LocalDateTime firstDay = dateTime
.with(TemporalAdjusters.firstDayOfMonth())
.with(LocalTime.MIN);
// 获取当前月的最后一天结束
LocalDateTime lastDay = dateTime
.with(TemporalAdjusters.lastDayOfMonth())
.with(LocalTime.MAX);
System.out.println(dateTime);
System.out.println(firstDay);
System.out.println(lastDay);