Witam, problem w skrócie wygląda następująco :
Baza : PostgreSQL - na Linixie, na innym komputerze
połączenie z programem w Java poprzez java.sql.Connection, program na Windowsie
pobieranie danych poprzez ResultSet.
Wykonuję kwerendę : SELECT ..... , cast(current_time AS time) as czas , .... FROM .... "
I tu zaczyna się problem :
Resultset.getTime("czas", calendar) na NIEKTÓRYCH KOMPUTERACH zwraca czas przesunięty o godzinę, w stosunku do czasu pobranego przez pgAdmin, a na niektórych pokazuje taki sam czas (ten przesunięty jest OK).
Np na moim kompie : jest teraz 15:56:21 , program zwraca 15:56:21 , pgAdmin pokazuje 14:56:21 (bez cast pokazuje 14:56:26.139748+00)
a na innym kompie program pokazuje 14:56:21
Ustawiam zmienną calendar :
GregorianCalendar calendar = (GregorianCalendar) GregorianCalendar.getInstance(TimeZone.getTimeZone("CET"));
Ale jak widać nie jest to chyba brane pod uwagę (nie zawsze).
Wydaje mi się że jest problem z interpretowaniem stref czasowych (na komputerze i pobranej z serwera PostgreSQL) - ale nie jestem pewien
Będę wdzięczny za pomoc.
Pozdrawiam