gpt4 book ai didi

java.util.Date 的行为

转载 作者:搜寻专家 更新时间:2023-11-01 01:18:46 24 4
gpt4 key购买 nike

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());

上面的打印:

not equal
2011-07-23 22:24:21.834
1311459861834
Sat Jul 23 22:24:21
1311459861834

这是为什么?这是日期中的错误吗?难以置信。

最佳答案

a.getDate() 显然返回 java.sql.Timestamp

java.sql.Timestampjava.uti.Date 有不同的 equals 方法,后者基本上是

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;
}

您可能使用 Hibernate 或类似的东西,将 java.util.Date 保留为 Timestamp

关于java.util.Date 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com