【发布时间】:2010-02-23 20:12:49
【问题描述】:
我正在从 Oracle 数据库中提取日期。它们设置在 java.util.Date 字段上,它们实际上是 java.sql.Timestamp 实例(它是 Java.util.Date 的子类)。如果我通过在第一个日期调用 after() 来比较两个不同数据库记录中的两个时间戳并将其与第二个日期进行比较,那么当日期的所有部分除了毫秒之外都相同时,我会得到错误的答案。
以下所有结果都应为“真”,但第二组数字则不然:
firstDate = 1/1/2000 12:00:20:00
secondDate = 1/1/2000 12:00:10:00
result = firstDate.after(secondDate);
result is TRUE <-- EXPECTED RESULT
firstDate = 1/1/2000 12:00:00:10
secondDate = 1/1/2000 12:00:00:00
result = firstDate.after(secondDate);
result is FALSE <-- NOT EXPECTED, result should be TRUE
我知道 nanos 与 Timestamp 类中的 Date 实例分开存储,我很好奇这是否是问题所在。
【问题讨论】:
-
使用 SimpleDateFormat 打印日期以便调试。
-
请发布实际代码,而不是伪代码。其次,没有
java.util.Timestamp这样的东西,你的意思是java.sql.Timestamp吗?