
java中如何获取上个月时间
用户关注问题
我想在Java程序中获取上个月的某一天,比如上个月的15号,应该如何实现?
使用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);
我需要在Java程序中得到上个月的第一天和最后一天的日期,应该用什么方法?
利用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());
获取到上个月的时间后,怎样格式化成“yyyy-MM-dd”的字符串格式?
利用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);