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

2019年6月1日 10点热度 0条评论

我知道有很多关于如何获取的问题,但是我想和使用新的Java 8 Date api作为示例。我也知道JodaTime库,但是我想要一种没有外部库的工作方式。

功能需要抱怨以下限制:

  • 从日期保存时间防止错误
  • 输入是两个Date对象(没有时间,我知道localdatetime,但我需要处理日期实例)
  • 解决方案如下:

    如果需要逻辑日历日,请使用 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
    

    有关更多信息,请引用
    this document