У меня есть поле в Postgresпреобразовать метку времени UNIX в Postgres эквивалентной метки времени в Java
Column | Type
created_at | timestamp without time zone
Я отметка времени Unix хранится в длинных в Java
long createdAtTime = data.getcreatedAtTime();
Я хочу, чтобы преобразовать его в отметка времени в Java, так что я могу хранить с activejdbc в Postgres
Я попытался следующий
Date convertedTime = new Date(createdAtTime*1000L);
record.set("created_at", convertedTime);
record.saveIt();
Но я получаю следующее сообщение об ошибке:
Can't infer the SQL type to use for an instance of java.util.Date. Use setObject() with an explicit Types value to specify the type to use.
Должен ли я использовать другой способ, чтобы преобразовать дату первого?
Вам нужно использовать 'java.sql.Timestamp' не' java.util.Date'. –
Возможный дубликат [Какой самый рекомендуемый способ хранения времени в PostgreSQL с помощью Java?] (Http://stackoverflow.com/questions/6627289/what-is-the-most-recommended-way-to-store-time -в-PostgreSQL-используя-Java). И [этот] (http://stackoverflow.com/questions/18132219/saving-timestamps-in-postgres-based-on-java-dates). И другие. –
Кстати, вы должны использовать TIMESTAMP WITH TIME ZONE, а не БЕЗ. Per [сообщение от Дэвида Э Уилера] (http://justatheory.com/computers/databases/postgresql/use-timestamptz.html) (эксперт по Postgres). –