En pocas palabras, seleccionando un oráculo DATE
en una Java Date
es inherentemente problemático. Eso es porque son fundamentalmente diferentes. Una DATE
de Oracle es la combinación de año, mes, día, horas, minutos, segundos, sin información de zona horaria, por lo que podría ser cualquier zona horaria, con o sin horario de verano; Oracle no lo sabe, ya que esa información no está incluida en DATE
.
Por otro lado, una fecha de Java básicamente es el número de milisegundos desde el 1/1/1970 00:00:00 UTC.
Cuando un Oracle DATE
entra en Java Date
, el controlador JDBC solo puede adivinar qué zona horaria aplicar. Los resultados son bastante impredecibles, especialmente cuando los datos en la base de datos usan una zona horaria diferente a la del usuario.