加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

计算java中两个日期之间的天数

发布时间:2020-12-14 06:03:29 所属栏目:Java 来源:网络整理
导读:参见英文答案 Android/Java – Date Difference in days17个 我需要计算两个日期之间的天数,我使用下面的代码.问题是它回来了2但实际上它应该返回3因为2016年6月30日到6月27日之间的差异是3.你能帮助它应该包括当前日期以及区别吗? public static long getN
参见英文答案 > Android/Java – Date Difference in days17个
我需要计算两个日期之间的天数,我使用下面的代码.问题是它回来了2但实际上它应该返回3因为2016年6月30日到6月27日之间的差异是3.你能帮助它应该包括当前日期以及区别吗?
public static long getNoOfDaysBtwnDates(String expiryDate) {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    Date expDate = null;
    long diff = 0;
    long noOfDays = 0;
    try {

        expDate = formatter.parse(expiryDate);
        //logger.info("Expiry Date is " + expDate);
       // logger.info(formatter.format(expDate));

        Date createdDate = new Date();
        diff = expDate.getTime() - createdDate.getTime();
        noOfDays = TimeUnit.DAYS.convert(diff,TimeUnit.MILLISECONDS);
        long a = TimeUnit.DAYS.toDays(noOfDays);
       // logger.info("No of Day after difference are - " + TimeUnit.DAYS.convert(diff,TimeUnit.MILLISECONDS));
        System.out.println(a);
        System.out.println(noOfDays);

    } catch (ParseException e) {
        e.printStackTrace();
    }

    return noOfDays;
}

到期日为2016-06-30,当前日期为2016-06-27

解决方法

原因是,您没有使用相同的时间格式减去两个日期.

使用Calendar类将日期的时间更改为00:00:00,您将获得几天的确切差异.

Date createdDate = new Date();
Calendar time  = Calendar.getInstance();
time.set(Calendar.HOUR_OF_DAY,0);
time.set(Calendar.MINUTE,0);
time.set(Calendar.SECOND,0);
time.set(Calendar.MILLISECOND,0);
createdDate = time.getTime();

Jim Garrison’answer中的更多解释

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读