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);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值