1.使用LocalDate方法获取
LocalDate now = LocalDate.now();
now = now.minusMonths(1);//月份-1
// 获取当前月的第一天
LocalDate firstDay = now.with(TemporalAdjusters.firstDayOfMonth());
// 获取当前月的最后一天
LocalDate lastDay = now.with(TemporalAdjusters.lastDayOfMonth());
//上个月第一天
Date startTime = Date.from(firstDay.atStartOfDay(ZoneId.systemDefault()).toInstant());
//上个月最后一天
Date endTime = Date.from(lastDay.atStartOfDay(ZoneId.systemDefault()).toInstant());
int year = now.getYear();
int month = now.getMonthValue();
2.使用Date方法获取
Calendar cal=Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date startTime = cal.getTime();//上个月第一天
Calendar calendar=Calendar.getInstance();
int month=calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
Date endTime = calendar.getTime();//上个月最后一天
文章介绍了两种在Java中获取上一个月第一天和最后一天的日期的方法,分别使用LocalDate和Calendar类。通过LocalDate.now()获取当前日期,然后减去一个月,再利用TemporalAdjusters调整到月初和月末。对于Calendar类,通过实例化并调整MONTH和DAY_OF_MONTH来获取相同信息。
632

被折叠的 条评论
为什么被折叠?



