JavaSE进阶
10.8.2 java.time.temporal .TemporalAdjuster : 时间校正器
TemporalAdjuster : 时间校正器。有时我们可能需要获取例如:将日期调整到“下一个工作日”等操作。
TemporalAdjusters : 该类通过静态方法(firstDayOfXxx()/lastDayOfXxx()/nextXxx())提供了大量的常用 TemporalAdjuster 的实现。
public static void main(String[] args) { LocalDate now = LocalDate.now(); System.out.println("下一个周日:"+now.with(TemporalAdjusters.next(DayOfWeek.SUNDAY))); System.out.println("下周五" + now.with(TemporalAdjusters.next(DayOfWeek.FRIDAY))); System.out.println("本月最后一天:"+now.with(TemporalAdjusters.lastDayOfMonth()));//2017-08-31 LocalDate week = LocalDate.now().with(new TemporalAdjuster(){ @Override public Temporal adjustInto(Temporal temporal) { LocalDate date = (LocalDate) temporal; if(date.getDayOfWeek().equals(DayOfWeek.MONDAY)){ return date.plusDays(7); }else if(date.getDayOfWeek().equals(DayOfWeek.TUESDAY)){ return date.plusDays(6); }else if(date.getDayOfWeek().equals(DayOfWeek.WEDNESDAY)){ return date.plusDays(5); }else if(date.getDayOfWeek().equals(DayOfWeek.THURSDAY)){ return date.plusDays(4); }else if(date.getDayOfWeek().equals(DayOfWeek.FRIDAY)){ return date.plusDays(3); }else if(date.getDayOfWeek().equals(DayOfWeek.SATURDAY)){ return date.plusDays(2); }else{ return date.plusDays(1); } } }); System.out.println("下一个工作日:" + week); } |
10.8.3 java.time.format.DateTimeFormatter 类
该类提供了三种格式化方法:
预定义的标准格式。如:ISO_DATE_TIME;ISO_DATE
本地化相关的格式。如:ofLocalizedDate(FormatStyle.MEDIUM)
自定义的格式。如:ofPattern(“yyyy-MM-dd hh:mm:ss”)
public static void main(String[] args) { System.out.println(DateTimeFormatter.ISO_DATE.format(LocalDate.now())); System.out.println(DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now())); //FULL和SHORT适用于LocalDate和LocalTime System.out.println(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).format(LocalDate.now())); System.out.println(DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT).format(LocalTime.now())); //LONG和MEDIUM适用于LocalDateTime System.out.println(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(LocalDateTime.now())); DateTimeFormatter op = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println(op.format(LocalDateTime.now())); } |