Hi all,
Sorry to reopen this issue but I still think there is a bug somewhere,
perhaps in the JDBC driver. The code and the end of this message
demonstrates the bug. Basically I write a timestamp to the database and then
read it back and what I write and what I get back are different. I don't
see how I can progrmatically make this correct in a consistent way without
knowing the "magic" dates in Postgres. Note that I believe there are more
than just one magic date. Apparently at ever older date (around 10,000 BC I
believe) the seconds are dropped.
The output from the code is (the computer's time was 03:23:49):
1850-Jan-01 03:23:49 JST
1850-Jan-01 06:23:49 JST
Thanks,
--Rainer
SimpleDateFormat format = new SimpleDateFormat( "yyyy-MMM-dd hh:mm:ss zz" );
Calendar cal = new GregorianCalendar();
cal.set( 1850, 00, 01 );
java.util.Date date = cal.getTime();
System.out.println( format.format( date ) );
try {
PreparedStatement ps = con.prepareStatement(
"update cust_prop_date set value = ? where customer_id = 8791"
);
ps.setTimestamp( 1, new Timestamp( date.getTime() ) );
ps.execute();
ps.close();
ps = con.prepareStatement( "select value from cust_prop_date where
customer_id=8791" );
ResultSet rs = ps.executeQuery();
rs.next();
date = new java.util.Date( rs.getTimestamp( "value" ).getTime() );
rs.close();
ps.close();
} catch( Exception e ) {
}
System.out.println( format.format( date ) );