date1
并且date2
由于年表不同而在这里不相等:
val formatter = ISODateTimeFormat.dateTimeNoMillis
val date1 = formatter.parseDateTime("2012-01-03T00:00:00Z")
val date2 = new DateTime(2012, 1, 3, 0, 0, DateTimeZone.UTC)
println(date1.getChronology) // ISOChronology[Europe/Bucharest]
println(date2.getChronology) // ISOChronology[UTC]
assert(date1 === date2) // fails
在这里他们是平等的:
val formatter = ISODateTimeFormat.dateTimeNoMillis
val date1 = formatter.withZone(DateTimeZone.UTC).parseDateTime("2012-01-03T00:00:00Z")
val date2 = new DateTime(2012, 1, 3, 0, 0, DateTimeZone.UTC)
println(date1.getChronology) // ISOChronology[UTC]
println(date2.getChronology) // ISOChronology[UTC]
assert(date1 === date2) // succeeds
我知道DateTime
实例应该具有相同的年表才能被视为平等,但我希望字符串中的 Z 指示符会使格式化程序date1
在 UTC 年表中解析。我很确定我对 和 之间的区别感到困惑Chronology
,DateTimeZone
所以如果有人能指出我正在混淆的确切内容,我将不胜感激。
顺便说一句,代码在 Scala 中,断言来自 ScalaTest,但这不应该有任何区别。