我通过hibernate在Oracle XE数据库中存储一个简单的java.util.date。
当我使用JUnit进行测试时,如果我可以检索到正确的值,我会收到如下错误:
junit.framework.AssertionFailedError:
expected:<Sun Dec 28 11:20:27 CET 2008>
but was:<2008-12-28 11:20:27.0>
该值存储在Oracle Date列中(应该具有第二个精度),这对我来说没问题。另外,我很惊讶11:20:27不等于11:20:27.0。或者这与时区有关吗?
欢迎任何帮助。
和Thorsten
答案 0 :(得分:1)
好的,还有更多的工作......
Java日期确实包含毫秒,但通常不会打印它们。所以
预期:
实际上是由日期11:20:27,345创建的,当然不等于11:20:27.0
解决方案:
答案 1 :(得分:0)
如果您将java.util.Date
与java.sql.Date
进行比较,两者都代表同一时刻,equals(Object)
将返回false(它会将两个不同类的对象视为从不< / strong>相等)。
您的测试需要考虑到这一点。最简单的方法是将日期转换为UNIX时间(例如java.util.Date.getTime()
)并比较这些值。