Mówiąc najprościej, wybierając wyrocznię DATE
do Date
Javy jest z natury problematyczny. To dlatego, że są fundamentalnie różne. Oracle DATE
jest kombinacją roku, miesiąca, dnia, godzin, minut, sekund, bez informacji o strefie czasowej, więc może to być dowolna strefa czasowa, z lub bez czasu letniego — Oracle nie wie, ponieważ te informacje nie są zawarte w DATE
.
Z drugiej strony data Java to w zasadzie liczba milisekund od 1/1/1970 00:00:00 UTC.
Gdy Oracle DATE
przechodzi w Date
Javy , sterownik JDBC może tylko odgadnąć, którą strefę czasową zastosować. Wyniki są raczej nieprzewidywalne, zwłaszcza gdy dane w bazie danych używają innej strefy czasowej niż użytkownik.