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@gmail.com Sometimes there's nothing left to do but crash and burn...or die trying. ========================================================================