求两个Date之间的天数

北城以北 提交于 2020-02-06 03:23:41

利用JDK1.8的新特性,ChronoUnit类获取两个日期之间的天数只差

ChronoUnit是一个枚举类,有一组标准的时间周期为单元的枚举值,它的枚举值是不变的,线程安全的。使用between()方法获取两个日期之间的天数差,当然不仅仅可以获取天数差,可以获取这个枚举类中任意一个给出的时间单元的间隔,如毫秒数,秒数,分钟数,天数,月数,年数等。

between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)

between()方法求两个日期之间的天数差,左侧的参数是包含的,右侧的参数不包含,相当于一个左闭右开区间。具体使用方式

//将Date类型的格式转换为LocalDate类型
Instant instantStart = startDate.toInstant();
ZonedDateTime zonedDateTimeStart = instantStart.atZone(ZoneId.systemDefault());
LocalDate localDateStart = zonedDateTimeStart.toLocalDate();
Instant instantEnd = endDate.toInstant();
ZonedDateTime zonedDateTimeEnd = instantEnd.atZone(ZoneId.systemDefault());
LocalDate localDateEnd = zonedDateTimeEnd.toLocalDate();
//求两个日期之间的天数只差
long between = ChronoUnit.DAYS.between(instantStart , localDateEnd );

 


 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!