关于JodaTime:JodaTime – 关于日期的测试随机失败

JodaTime - Test about dates fails randomly

本问题已经有最佳答案,请猛点这里访问。

我有这个代码:

1
2
3
4
5
6
public static int getDaysBetween(Date dateA, Date dateB) {
    return Days.daysBetween(
        new DateTime(dateA),
        new DateTime(dateB))
    .getDays();
}

这个测试案例:

1
2
3
4
5
6
@Test
public void test() {
    Date dateFrom = buildDate(10, Calendar.JANUARY, 2018);
    Date dateTo = buildDate(1, Calendar.JANUARY, 2018);
    assertEquals(DateUtils.getDaysBetween(dateFrom, dateTo), -9);
}

大多数测试都通过了,但随机失败。有时,getDaysBetween返回-8而不是-9

怎么了?这是什么jodatime bug吗?


从技术上讲,这不是一个虫子,只是一个烦恼。结果发现你的两天之间的差额没有达到一天,它返回0。如果你有1.99999天,它会返回1。

有一篇关于类似问题的文章可以帮助你