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

2022-08-31 04:54:10

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

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

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

答案 1

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

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

如果需要字面 24 小时天持续时间),可以改用 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

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


答案 2

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

ChronoUnit.DAYS.between(firstDate, secondDate)

推荐