Re: Having a hard time understanding time zone
От | Robert DiFalco |
---|---|
Тема | Re: Having a hard time understanding time zone |
Дата | |
Msg-id | 1E80E3BD-947B-4598-9587-60BDFEE1CF46@gmail.com обсуждение исходный текст |
Ответ на | Re: Having a hard time understanding time zone (Dave Cramer <pg@fastcrypt.com>) |
Список | pgsql-jdbc |
Well I feel a little crazy. But this is what I see. I have a timestamp without time zone column with a default value of current_timestamp. In PSQL I can see this value yields a UTC value. But when I insert from JDBC (not setting that column) and then look at the value with PSQL I see a PDT value?! That is my JVM zone. When I get back to the office on Monday I'll try to create a test case.
Justin McCammon |
Robert,The driver certainly doesn't do anything to a statement likeinsert into foo (datecol) values (now())it does use the calendar of the vm to get the string representation.Time, and date are two things not very well handled in java or JDBC. What is the exact column type and what does it store in the databaseBut to answer your question you can do:stmt.setTimestamp(1, t, Calendar.getInstance( TimeZone.getTimeZone("UTC")))
On 6 April 2014 13:56, Robert DiFalco <robert.difalco@gmail.com> wrote:Does the JDBC driver set the timezone to the origin timezone for each statement?I have a date column in a table. My Postgres server is running in UTC. My java app is running in "America/Los_Angeles".I would expect a DEFAULT column of NOW() to insert the current UTC time. While if I specify the time with new Date() from Java I would expect the Java timezone.But oddly both set the date field to the localized time in Java and not the UTC time.This makes me think that the driver is somehow forcing the session timezone.If so is there any way to make the driver communicate with the server in UTC?Thanks!
В списке pgsql-jdbc по дате отправления: