public class test1 {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("本周第一天: " + dateTest(getStartDayOfWeek(today)));
System.out.println("本周最后一天 " + dateTest(getEndDayOfWeek(today)));
}
public static String dateTest(LocalDateTime date) {
return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
public static LocalDateTime getStartDayOfWeek(LocalDate date) {
WeekFields weeks = WeekFields.of(DayOfWeek.MONDAY, 1);
DayOfWeek firstDayOfWeek = weeks.getFirstDayOfWeek();
return LocalDate.now(ZoneId.systemDefault()).with(firstDayOfWeek).atStartOfDay();
}
public static LocalDateTime getEndDayOfWeek(LocalDate date) {
TemporalField fieldIso = WeekFields.of(DayOfWeek.MONDAY, 1).dayOfWeek();
LocalDate localDate = LocalDate.from(date);
localDate = localDate.with(fieldIso, 7);
return localDate.atStartOfDay();
}
}
当月的第一天,和最后一天
// 封装日期时间对象为当前时间
LocalDate now1 = LocalDate.now();
// 通过with方法传入TemporalAdjuster类的实现类对象,就可以进行更改,
// 实现类对象是由TemporalAdjusters类的静态方法来提供的,修改时间为当月的第一天
LocalDate l1 = now1.with(TemporalAdjusters.firstDayOfMonth());
LocalDate l2 = now1.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("将时间修改为当月第一天 "+l1);
System.out.println("将时间修改为当月最后一天 "+l2);