gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:43:13 27 4
gpt4 key购买 nike

我已经编写了一些类编码解码例程到 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

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

这是由于日期中某处失去精度造成的吗?我假设重建的值是相等的。

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

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

LocalDateTime.parse (jsonStrValue) 

当我检查等效性时效果很好

我缺少什么日期来阻止此工作?

最佳答案

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

def today = new Date().clearTime() // requires groovy-dateutil library for Groovy 2.5+
def parsed = Date.parse('EEE MMM dd HH:mm:ss Z yyyy', today.toString())
assert parsed == today

关于Java Date 转换为 String 并返回 Date,相等性检查失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61821985/

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