Charl Gerber wrote:
> I have tables with "TIMESTAMP" fields (no timezone).
>
> If I do this (through a JDBC call):
>
> "UPDATE users SET last_login=current_timestamp"
>
> then the database explorer shows the times in New
> Zealand time, as expected. But my the Java classes see
> the time (after converting the time to the Amsterdam
> timezone) as 19 hours ahead of Amsterdam time. (19
> hours is, I think, the difference between the USA and
> New Zealand times?). I also tried with LOCALTIMESTAMP
> instead of current_timestamp, same result.
When you use getTimestamp() on a timestamp-without-timezone column, the
JDBC driver treats it as a timestamp in the (Java client's) default
timezone, a US timezone in your case I believe.
In theory you can pass an appropriate Calendar object to getTimestamp()
to tell the driver to treat it as a timestamp in that timezone if no
timezone information is associated with the timestamp column. The code
looks a bit hairy though, I'd be interested to know if this actually works.
-O