我有代码,类似于:
import java.time._
object app {
def main (args :Array[String]) = {
println("app started")
// create two ZonedDateTime objects for 1st Jan 2018, 10am UTC
// using separate methods
val zdt1 = ZonedDateTime.of(2018, 1, 1, 10, 0, 0, 0, ZoneId.of("UTC"))
val zdt2 = ZonedDateTime.parse("2018-01-01T10:00:00Z")
println(s"COMPARING: $zdt1 and $zdt2")
println("== check: " + (zdt1 == zdt2))
println(".equals check: " + (zdt1.equals(zdt2)))
println(".isEqual check " + (zdt1.isEqual(zdt2)))
println("app finished")
}
}
此处提供代码:https ://ideone.com/43zf8B
问题:
- 这些都是类型化的 ZonedDateTime 对象
- 根据 .isEqual() 方法,它们是等价的。
- 根据 .equals() 方法,它们不等效
然而,我的测试套件对这些日期时间实例所在的类使用 beEquals 操作进行深度匹配,因此我需要一种方法来规范化它们,以便 .equals() 返回 true。
请问我怎样才能使它们正常化?