Java相等日期不相等

时间:2018-07-20 08:18:56

标签: java date equals

我刚刚遇到了一个非常奇怪的行为。我想用d1.equals(d2);比较两个完全相同的日期,但是结果是错误的。

在调试时,我发现两个日期的“快速时间”均为1531951200000。之后,我将支票更改为d1.getTime() == d2.getTime(),并得到了两者相等的结果。

我还检查了equals()的{​​{1}}方法,该方法几乎完全相同

java.util.Date

请注意,两个对象的类型均为public boolean equals(Object obj) { return obj instanceof Date && getTime() == ((Date) obj).getTime(); } ,这排除了可能存在差异的地方,即java.util.Datejava.util.Date。还要注意,其中一个值是从数据库中读取的,而另一个是从文件中读取的。这两个值都使用java.sql.Date字段设置为同一类的不同实例。

有人对此进行解释吗?还是我只是想念什么?

0 个答案:

没有答案