4

我知道 java Date 的设计很差,但直到今天我才知道如何。

我将日期保存到 DB,当我从 DB 获取它并与原始日期进行比较时,它告诉我它不同!

我写了一个看起来很奇怪的测试,但它通过了!

@Test
public void date_equals() {
    Date now = new Date();
    Timestamp timestamp = new Timestamp(now.getTime());

    assertFalse(timestamp.equals(now));
    assertTrue(now.equals(timestamp));

    assertTrue(timestamp.compareTo(now) == 0);
    assertFalse(now.compareTo(timestamp) == 0);

    assertTrue(timestamp.getTime() == now.getTime());
    assertTrue(now.getTime() == timestamp.getTime());
}

我注意到 java.sql.Timestamp 在纳秒方面与 Date 略有不同,我不在乎。

谁能告诉我如何在最佳实践中比较这两者?我不想在任何地方比较日期使用 getTime(),是否有任何通用库或其他方法可以做到这一点?

顺便说一句,我正在使用 JDK 6

4

2 回答 2

8
于 2017-05-10T03:37:18.853 回答
1

Timestamp::compareTo(java.util.Date o)java.sql.TimeStamp课堂上。用它。

于 2017-05-10T03:29:38.373 回答