首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java 8中计算两个日期之间的天数

在Java 8中计算两个日期之间的天数
EN

Stack Overflow用户
提问于 2014-11-19 07:06:25
回答 14查看 303.6K关注 0票数 324

我知道有很多关于如何在Java语言中获得Date的问题,但我想要一个使用新的Java8 Date API的例子。我也知道JodaTime库,但我想要一个不依赖外部库的方法。

该函数需要符合以下限制:

从日期防止错误savetime

  • Inputs是两个对象(没有
  1. ,我知道LocalDateTime,但我需要用Date实例来做这件事)
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2014-11-19 07:24:13

如果需要逻辑日历天数,请使用java.time.temporal.ChronoUnit中的DAYS.between()方法

代码语言:javascript
复制
LocalDate dateBefore;
LocalDate dateAfter;
long daysBetween = DAYS.between(dateBefore, dateAfter);

如果您想要24小时天(持续时间),则可以改用Duration类:

代码语言:javascript
复制
LocalDate today = LocalDate.now()
LocalDate yesterday = today.minusDays(1);
// Duration oneDay = Duration.between(today, yesterday); // throws an exception
Duration.between(today.atStartOfDay(), yesterday.atStartOfDay()).toDays() // another option

有关更多信息,请参阅this document

票数 527
EN

Stack Overflow用户

发布于 2014-11-19 07:29:57

基于VGR的评论,这里是你可以使用的:

代码语言:javascript
复制
ChronoUnit.DAYS.between(firstDate, secondDate)
票数 158
EN

Stack Overflow用户

发布于 2015-08-31 00:57:13

您可以使用until()

代码语言:javascript
复制
LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4);
LocalDate christmas = LocalDate.of(2014, Month.DECEMBER, 25);

System.out.println("Until christmas: " + independenceDay.until(christmas));
System.out.println("Until christmas (with crono): " + independenceDay.until(christmas, ChronoUnit.DAYS));

输出:

代码语言:javascript
复制
Until christmas: P5M21D
Until christmas (with crono): 174

正如comment - first untill()返回Period中提到的。

文档中的代码片段:

在ISO8601日历系统中基于日期的时间量,例如“2年3个月4天”。

此类以年、月和天为单位模拟时间量或时间量。有关此类的基于时间的等价物,请参见持续时间。

票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27005861

复制
相关文章

相似问题

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