java实现:根据new Date()的当前年月日,获取当前年月日上个月的第一天的日期和上个月最后一天的日期
时间: 2024-10-13 11:18:34 浏览: 33
在Java中,你可以使用`java.util.Calendar`类来实现这个功能。以下是获取当前月份上个月第一天和最后一天日期的代码示例:
```java
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
// 获取当前日期
Calendar calendar = Calendar.getInstance();
// 设置当前月份减一,因为我们需要的是上个月
calendar.add(Calendar.MONTH, -1);
// 上个月的第一天
int firstDayOfMonthLastMonth = calendar.get(Calendar.DAY_OF_MONTH);
calendar.set(Calendar.DAY_OF_MONTH, 1); // 将日子设置为每月第一天
int startOfMonthLastMonth = calendar.getTime().getTime(); // 获取开始日期
// 上个月的最后一天
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 获取本月最大天数
int lastDayOfMonthLastMonth = calendar.get(Calendar.DAY_OF_MONTH);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0); // 设定时间部分为0,得到最后一天的时间戳
long endOfMonthLastMonth = calendar.getTime().getTime(); // 获取结束日期
System.out.println("上个月第一天: " + new Date(startOfMonthLastMonth));
System.out.println("上个月最后一天: " + new Date(endOfMonthLastMonth));
}
}
```
这段代码首先获取当前日期,然后调整月份到上个月,并分别计算出第一天和最后一天的日期。请注意,这个方法不会考虑闰年的二月,如果你需要处理这种情况,可以使用`java.time.LocalDate`类结合`isLeapYear()`方法来判断。
阅读全文