Java日期转换为String并返回Date,失败相等检查

问题描述 投票:0回答:1

我已经将一些类编码解码例程写入json并返回。除一种显式类型为Date

之外,此方法均有效

没有显示完整的库,这是我的问题

Date now = Date.newInstance()
println "now : $now"
Date reconverted = new SimpleDateFormat('EEE MMM dd HH:mm:ss Z yyyy').parse(now.toString())
println "reconverted : $reconverted"

assert reconverted == now  //this assertion fails 

如果您查看输出字符串文本,因为它们是相同的。但是“重新转换”的对象不等于“现在”的对象。

这是由于Date中某处的精度损失?我假设重构的值将相等。

这只是一个问题,因为如果类具有Date字段,我无法断言我的编码/解码的类实例是相同的

我在LocalDateTime编码/解码中没有这个问题,我的解码解析看起来像这样

LocalDateTime.parse (jsonStrValue) 

当我检查对等时效果很好

我为Date失去了什么?

我已经将一些类编码解码例程写入json并返回。除一种显式类型为Date而不显示完整的库外,此方法有效,这是我的问题Date now = Date ....

java groovy decode encode equality
1个回答
0
投票

如注释中所述,您的解析不包括毫秒。如果您对时间不感兴趣,可以使用一些java.util.Date扩展方法来获得可比的结果。

© www.soinside.com 2019 - 2024. All rights reserved.