Arj*_*gri 4 java debugging date java.util.date
Foo a;
...
Date b = a.getDate();
Date c = new Date(b.getTime());
if (b.equals(c)) System.out.println("equal");
else System.out.println("not equal");
System.out.println(b.toString());
System.out.println(b.getTime());
System.out.println(c.toString());
System.out.println(c.getTime());
Run Code Online (Sandbox Code Playgroud)
以上打印:
not equal
2011-07-23 22:24:21.834
1311459861834
Sat Jul 23 22:24:21
1311459861834
Run Code Online (Sandbox Code Playgroud)
为什么是这样?这是日期中的错误吗?这很难相信.
a.getDate() 明显回归 java.sql.Timestamp
java.sql.Timestamp有java.uti.Date基本上不同的等于方法
return obj instanceof Date && getTime() == ((Date) obj).getTime();
Timestamp然而,它更复杂,它也需要目标Timestamp.
if (ts instanceof Timestamp) {
return this.equals((Timestamp)ts);//the impl checks nanos too
} else {
return false;
}
Run Code Online (Sandbox Code Playgroud)
你可能使用Hibernate或者类似的东西,持续java.util.Date的Timestamp.