Przepraszam, nie mam odpowiedzi na twoje bezpośrednie pytanie. Mogę jednak zasugerować coś wartego rozważenia, co pozwoli całkowicie uniknąć problemów ze strefami czasowymi w bazie danych. Jeśli to możliwe, polecam po prostu użyć BIGINT
pola do przechowywania dat w Javie. Po prostu przechowujesz long
liczby milisekund od epoki, np. z System.currentTimeMillis()
lub Date.getTime()
.
Następnie interpretacja strefy czasowej dla daty jest zawsze zarządzana w Javie, co jest dobre w przypadku korzystania z liczby opartej na epoce. To sprawia, że bardziej zaangażowane jest bezpośrednie zapytanie bazy danych o datę poza Javą, jednak nie jest to zbyt trudne i wydaje się być tego warte IMO:
SELECT FROM_UNIXTIME(date_field / 1000) FROM table;