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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。