我java.time.Period#getDays()
用来获取给定时间段LocalDate
s 的天数。
在大多数情况下,它似乎可以正常工作,但整个月的时间为零天。
以下测试用例失败(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());
}
我相信这是正确的结果。如果运行以下测试,您将看到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);
请注意,它DAYS
是java.time.temporal.ChronoUnit
枚举的成员。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句