利用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(localDateStart, localDateEnd );