一、前言
本文是JDK8时间相关类系列的最后一篇
二、Duration类
1.获取本地日期时间对象
LocalDateTime today = LocalDateTime.now();
System.out.println(today);
2.出生的日期时间对象
如果不知道的话可以查看源码,里面会列出相关的方法
LocalDateTime birthDate = LocalDateTime.of(2000, 10, 24, 0, 0, 0);
System.out.println(birthDate);
Duration duration = Duration.between(birthDate, today);//第二个参数减第一个参数
System.out.println("相差的时间间隔对象:" + duration);
System.out.println("============================================");
System.out.println(duration.toDays());//两个时间差的天数
System.out.println(duration.toHours());//两个时间差的小时数
System.out.println(duration.toMinutes());//两个时间差的分钟数
System.out.println(duration.toMillis());//两个时间差的毫秒数
System.out.println(duration.toNanos());//两个时间差的纳秒数
三、Period类
1.获取当前本地年月日
这个方法同上
LocalDate today = LocalDate.now();
System.out.println(today);
2.获取生日的年月日
LocalDate birthDate = LocalDate.of(2002, 10, 24);
System.out.println(birthDate);
Period period = Period.between(birthDate, today);//第二个参数减第一个参数
System.out.println("相差的时间间隔对象:" + period);
System.out.println(period.getYears());
System.out.println(period.getMonths());
System.out.println(period.getDays());
System.out.println(period.toTotalMonths());
3.ChronoUnit 类
// 当前时间
LocalDateTime today = LocalDateTime.now();
System.out.println(today);
// 生日时间
LocalDateTime birthDate = LocalDateTime.of(2002, 10, 24,0, 0, 0);
System.out.println(birthDate);
System.out.println("相差的年数:" + ChronoUnit.YEARS.between(birthDate, today));
System.out.println("相差的月数:" + ChronoUnit.MONTHS.between(birthDate, today));
System.out.println("相差的周数:" + ChronoUnit.WEEKS.between(birthDate, today));
System.out.println("相差的天数:" + ChronoUnit.DAYS.between(birthDate, today));
System.out.println("相差的时数:" + ChronoUnit.HOURS.between(birthDate, today));
System.out.println("相差的分数:" + ChronoUnit.MINUTES.between(birthDate, today));
System.out.println("相差的秒数:" + ChronoUnit.SECONDS.between(birthDate, today));
System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate, today));
System.out.println("相差的微秒数:" + ChronoUnit.MICROS.between(birthDate, today));
System.out.println("相差的纳秒数:" + ChronoUnit.NANOS.between(birthDate, today));
System.out.println("相差的半天数:" + ChronoUnit.HALF_DAYS.between(birthDate, today));
System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate, today));
System.out.println("相差的世纪(百年)数:" + ChronoUnit.CENTURIES.between(birthDate, today));
System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate, today));
System.out.println("相差的纪元数:" + ChronoUnit.ERAS.between(birthDate, today));
2023-01-16T23:51:49.584
2002-10-24T00:00
相差的年数:20
相差的月数:242
相差的周数:1055
相差的天数:7389
相差的时数:177359
相差的分数:10641591
相差的秒数:638495509
相差的毫秒数:638495509584
相差的微秒数:638495509584000
相差的纳秒数:638495509584000000
相差的半天数:14779
相差的十年数:2
相差的世纪(百年)数:0
相差的千年数:0
相差的纪元数:0
四、结语
本文中的类只需要知道,了解含义即可