[英]Java Date conversion to String and back to Date, fail equality check
我已經編寫了一些 class 編碼解碼例程到 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
如果您查看 output 字符串文本,它們是相同的。 但是“重新轉換”的 object 不等於“現在”的 object。
這是由於 Date 中某處的精度丟失造成的嗎? 我曾假設重建的值是相等的。
這只是一個問題,因為如果 class 具有日期字段,我無法斷言我的編碼/解碼 class 實例是相同的
我的 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.