java如何获取日期上月月末

java如何获取日期上月月末

作者:William Gu发布时间:2026-02-27阅读时长:0 分钟阅读次数:8

用户关注问题

Q
如何用Java确定某个日期上个月的最后一天?

我有一个特定的日期对象,想通过Java代码获取这个日期上个月的最后一天,需要用什么方法?

A

使用Java的日期API获取上个月月末日期

可以使用Java 8及以上版本的java.time包中的LocalDate类。具体做法是,先获取当前日期的上个月,再通过with(TemporalAdjusters.lastDayOfMonth())方法获取上个月的最后一天。例如:LocalDate now = LocalDate.now(); LocalDate lastMonthEnd = now.minusMonths(1).with(TemporalAdjusters.lastDayOfMonth());这样即可得到上个月的月末日期。

Q
Java中有没有方便的方法直接获得上个月月末日期?

我想在Java代码中快速获取上个月的月底日期,有没有已经封装好的方法或者工具类?

A

Java标准库中的日期调整器提供便捷获取月末的方法

Java自带的java.time.temporal.TemporalAdjusters类提供了lastDayOfMonth()方法,可结合LocalDate的minusMonths()实现。没有专门针对‘上个月月末’的单个方法,但结合这两个API使用非常高效和简洁。您可以写一个工具方法封装这段逻辑以供复用。

Q
使用Java Calendar类获取上个月最后一天的示例代码是怎样的?

我目前用的是Java早期的Calendar类,想知道如何用它获取上个月的月末日期,有没有示例?

A

通过Calendar类调整日期获取上个月末的步骤及示例

利用Calendar类,可以先将月份减一,然后设置日期为该月的最大天数。示例代码如下:Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, -1); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); Date lastMonthEndDate = cal.getTime();这种方式兼容性好,适合不使用Java 8新特性的项目。