Re: Having a hard time understanding time zone

From: Robert DiFalco <robert(dot)difalco(at)gmail(dot)com>
To: Dave Cramer <pg(at)fastcrypt(dot)com>
Cc: List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Having a hard time understanding time zone
Date: 2014-04-06 22:37:56
Message-ID: 1E80E3BD-947B-4598-9587-60BDFEE1CF46@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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
Sent from my iPhone

> On Apr 6, 2014, at 1:45 PM, Dave Cramer <pg(at)fastcrypt(dot)com> wrote:
>
> Robert,
>
> The driver certainly doesn't do anything to a statement like
>
> insert 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 database
>
> But to answer your question you can do:
>
>
> stmt.setTimestamp(1, t, Calendar.getInstance( TimeZone.getTimeZone("UTC")))
>
> Dave Cramer
>
> dave.cramer(at)credativ(dot)ca
> http://www.credativ.ca
>
>
>> On 6 April 2014 13:56, Robert DiFalco <robert(dot)difalco(at)gmail(dot)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!
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Robert DiFalco 2014-04-07 18:43:10 Re: Having a hard time understanding time zone
Previous Message David Johnston 2014-04-06 22:01:10 Re: Having a hard time understanding time zone