java中如何获取上个月时间

java中如何获取上个月时间

作者:Rhett Bai发布时间:2026-02-14阅读时长:0 分钟阅读次数:1

用户关注问题

Q
如何在Java中获取上个月的具体日期?

我想在Java程序中获取上个月的某一天,比如上个月的15号,应该如何实现?

A

使用Java时间API获取上个月的特定日期

可以使用Java 8及以上版本的java.time包,例如LocalDate类。首先获取当前日期,然后使用minusMonths(1)方法将日期调整到上个月,再调用withDayOfMonth(15)来设定具体日期。示例如下:

LocalDate today = LocalDate.now();
LocalDate lastMonthDate = today.minusMonths(1).withDayOfMonth(15);
System.out.println(lastMonthDate);

Q
Java中如何获取上个月的第一天和最后一天?

我需要在Java程序中得到上个月的第一天和最后一天的日期,应该用什么方法?

A

利用LocalDate和TemporalAdjusters获取上个月的起止日期

可以用LocalDate结合TemporalAdjusters来实现。先取得当前日期,减去一个月得到上个月的任意一天,再使用with(TemporalAdjusters.firstDayOfMonth())和with(TemporalAdjusters.lastDayOfMonth())获取上个月的第一天和最后一天:

LocalDate today = LocalDate.now();
LocalDate lastMonth = today.minusMonths(1);
LocalDate firstDay = lastMonth.with(TemporalAdjusters.firstDayOfMonth());
LocalDate lastDay = lastMonth.with(TemporalAdjusters.lastDayOfMonth());

Q
在Java中如何格式化输出上个月的时间?

获取到上个月的时间后,怎样格式化成“yyyy-MM-dd”的字符串格式?

A

利用DateTimeFormatter格式化上个月日期字符串

通过DateTimeFormatter类,可以将LocalDate类型的时间格式化输出为指定的字符串格式。先获取上个月日期,例如LocalDate lastMonthDate = LocalDate.now().minusMonths(1);,再调用DateTimeFormatter.ofPattern("yyyy-MM-dd").format(lastMonthDate)即可得到字符串格式。示例代码:

LocalDate lastMonthDate = LocalDate.now().minusMonths(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = lastMonthDate.format(formatter);
System.out.println(formattedDate);