java获取时间天数间隔

写在前面

java涉及时间比较及差值计算的无非就是Date 、SimpleDateFormat、Calendar三个类,但都没有包含纯粹计算天数差值的方法,要么就是跟业务不匹配(明面上计算的天数,只考虑日期间隔,忽略具体时间的影响),这里记录下在业务需求中获取时间(天数)差值的方案;

jdk8 之后版本的实现方式(这个实现方式只能计算当月间隔,已废弃)

    public Integer getDayInterval(Date start, Date end){
        LocalDateTime startLocalDateTime = LocalDateTime.ofInstant(start.toInstant(), ZoneId.systemDefault());
        LocalDateTime endLocalDateTime = LocalDateTime.ofInstant(end.toInstant(), ZoneId.systemDefault());
        return Period.between(startLocalDateTime.toLocalDate(), endLocalDateTime.toLocalDate()).getDays();
    }

jdk8之前版本实现方式

    public Integer getDayInterval(Date start, Date end){
        final long nd = 1000 * 24 * 60 * 60;
        Date startDay = new Date(start.getTime() - start.getTime() % nd);
        Date endDay = new Date(end.getTime() - end.getTime() % nd);
        return (int)((endDay.getTime() - startDay.getTime())/nd);
    }

你可能感兴趣的:(踩坑经验,杂七杂八)