首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.util.Date =()和getTime()

java.util.Date =()和getTime()
EN

Stack Overflow用户
提问于 2015-02-08 08:17:51
回答 6查看 1.3K关注 0票数 0

这两者之间有什么区别:

代码语言:javascript
复制
java.util.Date obj1;
java.util.Date obj2;

obj1.equals(obj2)
obj1.getTime() == (obj2.getTime())

有毫秒差吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-02-08 08:20:23

参见Date#equals的实现

代码语言:javascript
复制
947     public boolean equals(Object obj) {
948         return obj instanceof Date && getTime() == ((Date) obj).getTime();
949     }

并对getTime方法进行了比较。

Date#getTime返回“自1970年1月1日,00:00:00格林尼治时间以来的毫秒数”,您不能在上面使用equals,因为它是一个long,请参见它的签名:

代码语言:javascript
复制
public long getTime()

所以你应该简单地:

代码语言:javascript
复制
obj1.equals(obj2)

或者使用==运算符来比较从getTime返回的值。

票数 2
EN

Stack Overflow用户

发布于 2015-02-08 08:20:52

第一个比较Dates。第二个类型不编译,因为long (由getTime()返回)是一个基本类型,您不能在一个基本类型上调用一个method

票数 0
EN

Stack Overflow用户

发布于 2015-02-08 08:22:28

equals中定义的Date方法只检查两个对象的getTime()返回是否相同。因此,在使用equals和亲自检查getTime()值之间不应该有任何不同。如果所有的图书馆都写得很好,就不会有了。

但是,至少有一个Date (java.sql.Timestamp)子类覆盖equals,并将其含义更改为与其基本类不一致。因此,如果您的Date对象之一恰好是一个Timestamp,那么它的equals方法可以生成一个不同的结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28391959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档