Sac*_*rma 8 java datetime jodatime
我有两个相似的日期,我怀疑Joda DateTime api提供的比较:
log.info("comparing:"+abrDateTime+": and :"+breakStart+":"+abrDateTime.equals(breakStart));
Run Code Online (Sandbox Code Playgroud)
这打印
comparing:2015-07-14T12:25:47.000+05:30: and :2015-07-14T12:25:47.000+05:30:false
Run Code Online (Sandbox Code Playgroud)
使用DateTime.isEqual时
log.info("comparing:"+abrDateTime+": and :"+breakStart+":"+abrDateTime.isEqual(breakStart));
Run Code Online (Sandbox Code Playgroud)
打印:
comparing:2015-07-14T12:25:47.000+05:30: and :2015-07-14T12:25:47.000+05:30:true
Run Code Online (Sandbox Code Playgroud)
问题是我在我的应用程序中到处使用DateTime.equals方法,我应该将其更改为isEqual
?
注意:两个实例都具有相同的毫秒和相同的时区,如您在打印中看到的那样.
kuc*_*ang 11
首先,您可能需要检查代码,因为您提供的代码段是打印相同的对象(即abrDateTime
),然后在equals
和isEqual
方法中比较abrDateTime
with breakStart
对象.
其次,在这样的时候,最好的方法是检查API文档.对于equals,doc说:
根据毫秒即时,时间和时区,将此对象与指定对象进行相等性比较
和isEqual,doc状态:
这个瞬间是否等于仅通过毫秒比较的瞬间
所以,选择的是,你想根据时间来检查时间吗?然后去isEqual
方法.或者,如果您还要检查时区和年表,那么请继续equals
编辑:
处理你的评论,
年表和为什么需要比较=>从文档中获取
年表提供对时间日历系统的各个日期时间字段的访问.
因此,您可以将其Chronology
视为包含特定日历系统的日期和时间字段的类.(如ISO,格里高利,佛教等)
这是必要的,因为您不想比较两个日期,而是在不同的日历系统中.例如,在伊斯兰日历系统中,6月的第一个格里高利将是14个SHa`baan(这是我的意见所以它可能与API作者的意图不同,原因没有记录)
如果您只想比较工厂和时区.然后我想你可以使用isEqual
方法.
归档时间: |
|
查看次数: |
6484 次 |
最近记录: |