NutzCN Logo
问答 Times工具类时间计算精度问题
发布于 2592天前 作者 wanjunjun 1964 次浏览 复制 上一个帖子 下一个帖子
标签:
    public static long dayDiff(Date date1, Date date2) {
        return (date2.getTime() - date1.getTime()) / 86400000;
    }

Times.dayDiff 这个计算2个日期的天数,如果时间精度是到秒的话,不足24小时的,好像不太准哦
能否优化下,像mysql的DATEDIFF一样。。。 ^_^

6 回复
Date start = Times.D("2017-10-16 22:26:30");
Date end = Times.D("2017-10-17 21:26:30");
System.out.println(Times.dayDiff(start, end));

结果返回是0,期望值是1

刚好一天?

现在计算的结果,一般的情况会比实际期望的结果少1天,除非时,分,秒都是一样的,结果才是准的

哦,应该向上取整

向上取整,可能会导致同一天,时间不一样,计算的天数是1
最安全的办法,把时,分,秒的精度抹掉,精确到天,再做计算

哦,你想要的是一个新的方法了

添加回复
请先登陆
回到顶部