Date
в Java не хранит часовой пояс. Вместо этого он использует ваш местный часовой пояс для представления значений. Вот почему вы видите разные результаты.
Если вы используете Java 8 и JDBC 4.2, вы можете вместо этого использовать более надежный пакет java.time.*
. Это так просто:
LocalDateTime dateTime = rs.getObject(index, LocalDateTime.class);
Если вы хотите преобразовать LocalDateTime
в java.util.Date
, вы можете сделать это следующим образом:
Instant instant = dateTime.atZone(ZoneId.systemDefault()).toInstant();
Date dateFromOld = Date.from(instant);