
以下是两种方法的实现:
java.time(推荐)从 Java 8 开始,java.time 包提供了更现代化和易用的日期时间 API。以下是使用 LocalDate 和 minusMonths 方法的示例代码:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class PreviousMonthExample {
public static void main(String[] args) {
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 获取前一个月的日期
LocalDate previousMonthDate = currentDate.minusMonths(1);
// 格式化日期输出
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = previousMonthDate.format(formatter);
// 输出结果
System.out.println("当前日期: " + currentDate.format(formatter));
System.out.println("前一个月的日期: " + formattedDate);
}
}输出示例:
当前日期: 2025-03-31
前一个月的日期: 2025-02-28java.util.Calendar如果你使用的是 Java 7 或更早版本,可以使用 Calendar 类来实现类似功能:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class PreviousMonthExampleWithCalendar {
public static void main(String[] args) {
// 获取当前日期
Calendar calendar = Calendar.getInstance();
// 设置为前一个月
calendar.add(Calendar.MONTH, -1);
// 获取前一个月的日期
Date previousMonthDate = calendar.getTime();
// 格式化日期输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(previousMonthDate);
// 输出结果
System.out.println("前一个月的日期: " + formattedDate);
}
}输出示例:
前一个月的日期: 2025-02-28LocalDate 和 Calendar 都会自动调整到前一个月的最后一天。java.time 时,默认使用系统默认时区。如果需要特定时区,可以使用 ZonedDateTime 或 LocalDateTime。java.time:java.time 是线程安全的,并且比 Calendar 更加直观和易用。建议优先使用 java.time。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。