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

新手上路,请多包涵

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

该功能需要符合以下限制:

  1. 防止日期保存时间出错
  2. 输入是两个 Date 对象(没有时间,我知道 LocalDateTime ,但我需要用 Date 实例来做到这一点)

原文由 Marcos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
2 个回答

如果您想要 _逻辑日历日_,请使用 DAYS.between() 来自 java.time.temporal.ChronoUnit --- 的方法:

 LocalDate dateBefore;
LocalDate dateAfter;
long daysBetween = DAYS.between(dateBefore, dateAfter);

如果你想要 文字 24 小时 days ,( _持续时间_),你可以使用 Duration 类代替:

 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

有关详细信息,请参阅 此文档

原文由 syntagma 发布,翻译遵循 CC BY-SA 4.0 许可协议

根据 VGR 的评论,您可以使用以下内容:

 ChronoUnit.DAYS.between(firstDate, secondDate)

原文由 Sunil B 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题