如何通过LocalDateTime对象获取所属月份的最后一天日期
Java LocalDateTime 获取当月最后一天解决方案
- 直接使用JDK 8+
java.time包内置的TemporalAdjusters.lastDayOfMonth()调节器即可实现,无需手动编写月份判断逻辑,自动兼容闰年、不同月份天数差异:
import java.time.LocalDateTime; import java.time.temporal.TemporalAdjusters; // 示例原有LocalDateTime对象 LocalDateTime originalDateTime = LocalDateTime.of(2024, 10, 29, 14, 30); // 调整为当月最后一天,时间部分保留原有值 LocalDateTime lastDayOfMonth = originalDateTime.with(TemporalAdjusters.lastDayOfMonth());
上面的示例执行后,lastDayOfMonth 的值为 2024-10-31T14:30,符合需求。
- 若仅需要日期不需要时间部分,可转换为LocalDate后调整:
LocalDate lastDayDate = originalDateTime.toLocalDate() .with(TemporalAdjusters.lastDayOfMonth());
- 若需要将最终结果的时间设置为当月最后一天的末尾时刻,可额外调整时间字段:
LocalDateTime monthEndTime = originalDateTime.with(TemporalAdjusters.lastDayOfMonth()) .withHour(23) .withMinute(59) .withSecond(59) .withNano(0);
内容的提问来源于stack exchange,提问作者joseph
相关产品推荐
相关产品推荐

