PostgreSQL 9.3/PostgreSQL-9.3-1100-jdbc41.jarjOOQ Отметка хранится с локальным Timezone смещением
У меня есть таблица со столбцом типа timezone without time zone
, это порождает мой объект с действующим java.util.Timestamp
собственности.
Что я вижу во время вставки, это процесс привязки jOOQs, преобразующий java.util.Timestamp
в дату с локальным смещением часового пояса.
например, для отметки времени unix 1421109419 (13 янв 2015 00:36:59 по Гринвичу) свойство установлено с new Timestamp(1421109419 * 1000)
.
из регистратора jOOQ я вижу:
2015-01-13 14:14:31,482 DEBUG [http-bio-8002-exec-4] org.jooq.tools.LoggerListener#debug:255 - -> with bind values : insert into "foo"."bar" ("start_date") values (timestamp '2015-01-13 13:36:59.0') returning "foo"."bar"."id"
2015-01-13 14:14:31,483 TRACE [http-bio-8002-exec-4] org.jooq.impl.DefaultBinding#trace:179 - Binding variable 3 : 2015-01-13 13:36:59.0 (class java.sql.Timestamp)
и достаточно в записи уверен, значение "2015-01-13 13:36:59".
Программное обеспечение работает на машине в NZDT, что объясняет смещение +13.
Учитывая, что время предоставляется в агностическом контейнере TimeZone (отметка времени), я ожидал, что это будет выполнено при создании инструкции insert.
Как я могу создать временные метки jOOQ не по местному времени?
Итак, у вашей модели домена есть поля «Timestamp», которые определены непосредственно? Так что это не происходит через jOOQ Converter http://www.jooq.org/doc/3.5/manual/sql-execution/fetching/data-type-conversion/? – Alex
Правильно - 'java.util.Timestamp' - это то, что генерируется jOOQ и заполняется мной. Нет промежуточных преобразователей. – markdsievers
Я вижу несколько ссылок на драйвер PostgreSQL, являющийся причиной этого. Если это так, существует ли какой-либо метод в jOOQ, который я могу использовать для ввода временных меток в зависимости от значения эпохи, например, 'TIMESTAMP WITHOUT TIME ZONE 'epoch' + 1421109419 * INTERVAL '1 second''? – markdsievers