Confusion about JDBC + TIME WITHOUT TIME ZONE

From: Bill Moran <wmoran(at)potentialtech(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Confusion about JDBC + TIME WITHOUT TIME ZONE
Date: 2016-01-25 00:00:35
Message-ID: 20160124190035.78da947487fa2559c162cdcf@potentialtech.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc


I have a table that has a TIME WITHOUT TIME ZONE column.

When I try to insert via JDBC, the time is always adjusted for the
JVM's time zone. This behavior seems wrong to me. For example:

// Java code:
preparedStatement.setTime(1, Time.valueOf("00:00:10"));

Then, watching the PostgreSQL logs, I see that the value supplied
for parameter #1 is '05:00:10'.

Since my TZ is US Eastern, it appears as if JDBC is adjusting for
the timezone. I don't understand why it would do so, as the whole
point is that TIME WITHOUT TIME ZONE doesn't care, record, or
do anything else with or about the TZ.

To me, this feels like a bug. I'm certainly open to someone explaining
to me why this is the correct behavior, so I can stop understanding
it wrong (should that be the case) but that would have to include an
understanding of how to get the desired behavior. That behavior is
that the time passed in is stored without caring about its time zone.

--
Bill Moran

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2016-01-25 00:32:33 Re: Confusion about JDBC + TIME WITHOUT TIME ZONE
Previous Message Vladimir Sitnikov 2016-01-24 20:55:22 Re: Merge pgjdbc-parent-poms project into pgjdbc please