Java8 时间与日期
/**
* java8 时间与日期
*
*/
public class TestLambda10 {
/**
* TemporalAdjuster:时间矫正器
*/
@Test
public void test1() {
//当日
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
//当月10号
LocalDateTime ldt1 = now.withDayOfMonth(10);
System.out.println(ldt1);
//下个周日
LocalDateTime ldt2 = now.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
System.out.println(ldt2);
//下个工作日
LocalDateTime ldt4 = now.with((l) -> {
LocalDateTime ldt3 = (LocalDateTime) l;
DayOfWeek dayOfWeek = ldt3.getDayOfWeek();
if (dayOfWeek.equals(DayOfWeek.FRIDAY)) {
return ldt3.plusDays(3);
} else if (dayOfWeek.equals(DayOfWeek.SATURDAY)) {
return ldt3.plusDays(2);
} else {
return ldt3.plusDays(1);
}
});
System.out.println(ldt4);
}
/**
* DatetimeFormatter:格式化时间/日期
*/
@Test
public void test2() {
DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE_TIME;
LocalDateTime now = LocalDateTime.now();
String format = now.format(dtf);
System.out.println(format);
//自定义格式化
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
String format1 = dtf2.format(now);
System.out.println(format1);
LocalDateTime parse = now.parse(format1, dtf2);
System.out.println(parse);
}
/**
* ZonedDate、ZonedTime、ZonedDateTime:时区处理
*/
@Test
public void test3() {
//支持的时区
Set<String> set = ZoneId.getAvailableZoneIds();
set.forEach(System.out::println);
//指定时区
LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Europe/Tallinn"));
System.out.println(ldt);
//带偏移量
LocalDateTime ldt2 = LocalDateTime.now();
ZonedDateTime zonedDateTime = ldt2.atZone(ZoneId.of("Asia/Shanghai"));
System.out.println(zonedDateTime);
}
}
下一篇 Java8 重复注解与类型注解