获取两个日期之间的天数

kern1000:

java.time.Period#getDays()用来获取给定时间段LocalDates 的天数

在大多数情况下,它似乎可以正常工作,但整个月的时间为零天。

以下测试用例失败(java.lang.AssertionError: expected:<30> but was:<0>):

@Test
public void testOneMonthPeriodDays() {
    Period p = Period.between(LocalDate.of(2017, 06, 01), LocalDate.of(2017, 07, 01));
    assertEquals(30, p.getDays());
}
bhspencer:

我相信这是正确的结果。如果运行以下测试,您将看到getMonths()返回1。似乎getDays不是获得总天数,而是获得剩余天数。

@Test
public void testOneMonthPeriodDays() {
    Period p = Period.between(LocalDate.of(2017, 06, 01), LocalDate.of(2017, 07, 01));
    assertEquals(0, p.getDays());
    assertEquals(1, p.getMonths());
}

要获取两个日期之间的总天数,请参阅此问题计算Java 8中两个日期之间的天数

引用该问题给出的答案:

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

请注意,它DAYSjava.time.temporal.ChronoUnit枚举的成员

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章