Autrement dit, en sélectionnant une DATE
oracle dans une Date
Java est intrinsèquement problématique. C'est parce qu'ils sont fondamentalement différents. Une DATE
Oracle est la combinaison de l'année, du mois, du jour, des heures, des minutes, des secondes, sans aucune information sur le fuseau horaire, il peut donc s'agir de n'importe quel fuseau horaire, avec ou sans l'heure d'été - Oracle ne le sait pas, car cette information n'est pas incluse dans le DATE
.
D'autre part, une date Java est essentiellement le nombre de millisecondes depuis le 1/1/1970 00:00:00 UTC.
Lorsqu'une DATE
Oracle va dans une Date
Java , le pilote JDBC ne peut que deviner quel fuseau horaire appliquer. Les résultats sont plutôt imprévisibles, surtout lorsque les données de la base de données utilisent un autre fuseau horaire que celui de l'utilisateur.