首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中减去两个日期

在Java中减去两个日期
EN

Stack Overflow用户
提问于 2012-10-24 03:21:45
回答 3查看 138.8K关注 0票数 29

可能重复:

Calculating the Difference Between Two Java Date Instances

我知道这可能是一个重复的帖子。但我正在试图找出一种方法来计算两个日期之间的差异。在jquery中,日期字符串的格式为'yyyy-mm-dd'。我将其作为字符串读取,并将其转换为java日期,如下所示

代码语言:javascript
复制
Date d1 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.getParameter(date1));
Date d2 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.getParameter(date2));

我想计算这两个日期之间的天数之差。

注意:我不能使用第三方接口,因为需要审核。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-24 03:44:45

编辑2018-05-28我已经更改了示例,以使用Java8的Time API:

代码语言:javascript
复制
LocalDate d1 = LocalDate.parse("2018-05-26", DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate d2 = LocalDate.parse("2018-05-28", DateTimeFormatter.ISO_LOCAL_DATE);
Duration diff = Duration.between(d1.atStartOfDay(), d2.atStartOfDay());
long diffDays = diff.toDays();
票数 31
EN

Stack Overflow用户

发布于 2012-10-24 03:42:14

假设您被限制使用Date,您可以执行以下操作:

Date diff = new Date(d2.getTime() - d1.getTime());

在这里,您正在计算自“纪元”以来的毫秒差,并在距纪元的偏移处创建一个新的Date对象。正如其他人所说:重复问题中的答案可能是更好的替代方案(如果您不受Date的约束)。

票数 9
EN

Stack Overflow用户

发布于 2012-10-24 03:44:25

代码语言:javascript
复制
Date d1 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.
            getParameter(date1));
Date d2 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.
            getParameter(date2));

long diff = d2.getTime() - d1.getTime();

System.out.println("Difference between  " + d1 + " and "+ d2+" is "
        + (diff / (1000 * 60 * 60 * 24)) + " days.");
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13037654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档