Отметка времени чтения из базы данных на 4 часа позже времени по Гринвичу.Но был сохранен как GMT - PullRequest
0 голосов
/ 17 октября 2018

Мой код говорит сам за себя.Простой вопрос, но я не могу понять, как правильно читать эту метку времени:

Calendar now = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

//later, this code gets executed, and the "now" calendar object is the value:
insert into mytable (mydate) values(?)

Когда я читаю из этой таблицы, я получаю метку времени.Почему метка времени 4 часа спустя?

Конечно, это смещение от GMT, где я живу, но метка времени - это просто число.Я думал, что, поскольку мой календарь находится в зоне GMT, его временная метка вставляется как время по Гринвичу.

Timestamp mydate = rs.getTimestamp("mydate");

Я вижу, что метка времени обертывает объект Date.Объект даты, который он переносит после того, как я прочитал его из базы данных, зонирован в моем часовом поясе (не по Гринвичу).Я не уверен, как преобразовать это обратно в GMT или есть ли способ прочитать это непосредственно как GMT.

1 Ответ

0 голосов
/ 17 октября 2018

Нашел то, что мне было нужно:

java.util.Calendar cal = Calendar.getInstance(); 
cal.setTimeZone(TimeZone.getTimeZone("GMT"));
Timestamp mydate = rs.getTimestamp("mydate", cal);
...