Вы можете использовать перегруженный setTimestamp
установщик, принимающий Calendar
экземпляр, чтобы указать часовой пояс
Пример (если вы используете Joda datetime):
org.joda.time.DateTime sendDateUTC = new DateTime( DateTimeZone.UTC ).withMillis( millis );
statement.setTimestamp (1, sendDateUTC, sendDateUTC.toGregorianCalendar() );
Согласно javaDoc: Устанавливаетназначенный параметр для данного java.sql.Timestamp
значения, используя данный Calendar
объект.Драйвер использует объект Calendar
для создания значения SQL TIMESTAMP
, которое драйвер затем отправляет в базу данных.С объектом Calendar
водитель может рассчитать временную метку с учетом пользовательского часового пояса.Если объект Calendar не указан, драйвер использует часовой пояс по умолчанию, то есть виртуальный компьютер, на котором запущено приложение.
void setTimestamp(int parameterIndex, java.sql.Timestamp x, Calendar cal)
throws SQLException;