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

标签 java java-8 java-time days date-difference

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

该函数需要符合这些限制:

  1. 防止日期保存时出现错误
  2. 输入是两个 Date 对象(没有时间,我知道 LocalDateTime,但我需要使用 Date 实例来完成此操作)

最佳答案

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

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

有关更多信息,请参阅此文档:Java SE 8 Date and Time .

关于java - Java 8 计算两个日期之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44865345/

相关文章:

java - 在 Java 8 中遇到 - JDK-8023339 : j. u.Arrays.asList().removeIf() 是 "lazy"抛出 java.lang.UnsupportedOperationException

java - 使用 Java-8 时可变参数中的 ClassCastException

java - LocalDateTime.format(DateTimeFormatter) 和 DateTimeFormatter.format(TemporalAccessor) 有什么区别?

jsf - 托管 bean ManagedBean 的托管 bean 类 java.time.ZonedDateTime 未声明公共(public)无参数构造函数

java - 为什么我得到 DefaultHttpClient is deprecated?

java - 以编程方式返回启动器 android

java - 获取目录中文件的内容

java - 具有自定义模式的 JDK8 java.time.LocalTime

java - FileChannel.size() 保证在 Sun JVM 中返回正确的大小(包括挂起的更新)?

java - 如何用 Java 创建 AVI 电影?