在上一节学习的with方法中学习了可以通过with方法修改日期时间对象中封装的数据,但是有一些时候可能会做一些复杂的操作,比如说将时间调整到下个周的周日,下一个工作日,或者本月中的某一天,这个时候可以使用调节器TemporalAdjuster来更方便的处理日期
//示例 //通过with方法传入TemporalAdjuster类的实现类对象,就可以进行更改,实现类对象是由TemporalAdjusters类的静态方法来提供的 LocalDate now = LocalDate.now(); //1.修改时间为当前时间为当月第一天 now.with(TemporalAdjusters.firstDayOfMonth()); //修改时间为下个月的第一天. LocalDate firstDayoOfNextMonth = now.with(TemporalAdjusters.firstDayOfNextMonth()); //修改时间为下一年的第一天. LocalDate firstDayofNextYear = now.with(TemporalAdjusters.firstDayOfNextYear()); //修改时间为本年的第一天. LocalDate firstDayofYear = now.with(TemporalAdjusters.firstDayOfYear()); //修改时间为本月的最后一天. LocalDate lastDayofMonth = now.with(TemporalAdjusters.lastDayOfMonth()); //修改时间为本年的最后一天. LocalDate lastDayofYear = now.with(TemporalAdjusters.lastDayOfYear());
TemporalAdjuster 是一个接口, with 方法实际上传入的是这个接口的实现类对象, TremporalAdjusters 并不是 TemporalAdjuster 的实现类,只不过 TemporalAdjusters 的静态方法实现了 TemporalAdjuster ,并且将实现类对象返回了。