У меня есть код, похожий на этот:
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 для классов, в которых находятся эти экземпляры datetime, поэтому мне нужен способ их нормализации, чтобы .equals() возвращал true.
как я могу их нормализовать, пожалуйста?
zdt.toInstant()
- person Basil Bourque   schedule 22.01.2018