setTimestamp(int, Timestamp, Calendar) ignoring time zone?

From: Ian Pilcher <arequipeno(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: setTimestamp(int, Timestamp, Calendar) ignoring time zone?
Date: 2013-02-04 04:27:25
Message-ID: kendbb$843$1@ger.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

I am trying to use a Calendar parameter to setTimestamp. From what I've
read, using a Calendar with a non-default time zone should change the
value that is written to my table:

> public static void main(String[] args) throws Exception
> {
> System.out.println(
> "System time zone is " + TimeZone.getDefault().getID());
> Calendar c = Calendar.getInstance(
> TimeZone.getTimeZone("America/Chicago"));
> Class.forName(JDBC_DRIVER_CLASS);
> Connection db =
> DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWD);
> Statement s = db.createStatement();
> s.execute("DELETE FROM foo");
> PreparedStatement ps =
> db.prepareStatement("INSERT INTO foo (bar) VALUES (?)");
> ps.setTimestamp(1, Timestamp.valueOf("2013-02-01 00:00:00"));
> ps.execute();
> ps.setTimestamp(1, Timestamp.valueOf("2013-02-01 00:00:00"), c);
> ps.execute();
> ResultSet rs = s.executeQuery("SELECT * FROM foo");
> while (rs.next()) {
> System.out.println(rs.getTimestamp(1));
> }
> db.close();
> }

The output from the program is:

> System time zone is America/New_York
> 2013-02-01 00:00:00.0
> 2013-02-01 00:00:00.0

Is this a bug/missing feature in the driver, or am I doing something
wrong?

Thanks!

--
========================================================================
Ian Pilcher arequipeno(at)gmail(dot)com
Sometimes there's nothing left to do but crash and burn...or die trying.
========================================================================

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Steven Schlansker 2013-02-04 05:40:38 Re: Extracting more useful information from PSQLException
Previous Message Chen Huajun 2013-02-04 03:56:25 Re: [BUGS]log can not be output when use DataSource