java8 计算时间差的方法示例
一.简述
在Java8中,我们可以使用以下类来计算日期时间差异:
1.Period
2.Duration
3.ChronoUnit
二.Period类
主要是Period类方法getYears(),getMonths()和getDays()来计算.
示例:
packageinsping; importjava.time.LocalDate; importjava.time.Month; importjava.time.Period; publicclassTest{ publicstaticvoidmain(String[]args){ LocalDatetoday=LocalDate.now(); System.out.println("Today:"+today); LocalDatebirthDate=LocalDate.of(1993,Month.OCTOBER,19); System.out.println("BirthDate:"+birthDate); Periodp=Period.between(birthDate,today); System.out.printf("年龄:%d年%d月%d日",p.getYears(),p.getMonths(),p.getDays()); } }
结果:
Today:2017-06-16
BirthDate:1993-10-19
年龄:23年7月28日
三.Duration类
提供了使用基于时间的值(如秒,纳秒)测量时间量的方法。
示例:
packageinsping; importjava.time.Duration; importjava.time.Instant; publicclassTest{ publicstaticvoidmain(String[]args){ Instantinst1=Instant.now(); System.out.println("Inst1:"+inst1); Instantinst2=inst1.plus(Duration.ofSeconds(10)); System.out.println("Inst2:"+inst2); System.out.println("Differenceinmilliseconds:"+Duration.between(inst1,inst2).toMillis()); System.out.println("Differenceinseconds:"+Duration.between(inst1,inst2).getSeconds()); } }
结果:
Inst1:2017-06-16T07:46:45.085Z
Inst2:2017-06-16T07:46:55.085Z
Differenceinmilliseconds:10000
Differenceinseconds:10
四.ChronoUnit类
ChronoUnit类可用于在单个时间单位内测量一段时间,例如天数或秒。
以下是使用between()方法来查找两个日期之间的区别的示例。
packageinsping; importjava.time.LocalDate; importjava.time.Month; importjava.time.temporal.ChronoUnit; publicclassTest{ publicstaticvoidmain(String[]args){ LocalDatestartDate=LocalDate.of(1993,Month.OCTOBER,19); System.out.println("开始时间:"+startDate); LocalDateendDate=LocalDate.of(2017,Month.JUNE,16); System.out.println("结束时间:"+endDate); longdaysDiff=ChronoUnit.DAYS.between(startDate,endDate); System.out.println("两天之间的差在天数:"+daysDiff); } }
结果:
开始时间:1993-10-19
结束时间:2017-06-16
两天之间的差在天数:8641
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。