参考书籍《Java8 实战》
LocalDate
日期类
// 日期类
LocalDate date = LocalDate.of(2020, 10, 11);
System.out.println(date.getYear() +"-"+ date.getMonthValue() +"-"+ date.getDayOfMonth());
// 获取当前日期
LocalDate now = LocalDate.now();
字符串转为localdate
// 将字符串转为LocalDate
LocalDate parse = LocalDate.parse("2020-10-01");
System.out.println(parse);
LocalTime
时间类
LocalTime time = LocalTime.of(10, 10, 10);
System.out.println(time.getHour() +":"+ time.getMinute() +":"+ time.getSecond());
字符串转为localTime
// 将字符串转为LocalTime
LocalTime time1 = LocalTime.parse("13:10:10");
System.out.println(time1);
LocalDateTime
日期时间类
// 日期时间类
LocalDateTime localDateTime = LocalDateTime.now();
// 转为日期类
LocalDate localDate = localDateTime.toLocalDate();
// 转为时间类
LocalTime localTime = localDateTime.toLocalTime();
Instant
计算时间戳
// 获取时间戳
Instant instant = Instant.now();
// 以秒为单位的时间戳
System.out.println(instant.getEpochSecond());
Duration
计算时间间隔
LocalDateTime now1 = LocalDateTime.now();
Thread.sleep(1000);
LocalDateTime now2 = LocalDateTime.now();
System.out.println(Duration.between(now1, now2).getSeconds());
Period
计算日期间隔
LocalDate date1 = LocalDate.of(2020, 10, 11);
LocalDate date2 = LocalDate.of(2020, 10, 13);
System.out.println(Period.between(date1, date2).getDays());
操作日期类
直接修改年月日等
LocalDate date = LocalDate.of(2020, 10, 11);
// 将年改为2019
LocalDate localDate = date.withYear(2019);
System.out.println(localDate);
// 将月改为9
LocalDate localDate1 = date.withMonth(8);
System.out.println(localDate1);
LocalDate localDate2 = date.with(ChronoField.MONTH_OF_YEAR, 9);
System.out.println(localDate2);
相对修改日期
// 当前日期加一周
LocalDate date2 = date.plusWeeks(1);
System.out.println(date2);
// 当前日期减去3年
LocalDate date3 = date.minusYears(3);
System.out.println(date3);
LocalDate date4 = date3.plus(6, ChronoUnit.MONTHS);
System.out.println(date4);
操作日期的方法
TemporalAdjusters
更加个性化的操作日期
// 求出这个月的第一天
LocalDate date5 = date.with(TemporalAdjusters.firstDayOfMonth());
System.out.println(date5);
格式化日期
// 格式化为字符串
// 20201011
System.out.println(date.format(DateTimeFormatter.BASIC_ISO_DATE));
// 2020-10-11
System.out.println(date.format(DateTimeFormatter.ISO_LOCAL_DATE));
// 字符串格式化为日期
LocalDate date1 = LocalDate.parse("20201011",
DateTimeFormatter.BASIC_ISO_DATE);
System.out.println(date1);
根据某个模式格式化时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate now = LocalDate.now();
// 转为dd/MM/yyyy格式
String format = now.format(formatter);
System.out.println(format);