By using AWS re:Post, you agree to the Terms of Use

Redshift jdbc driver getdate() returns time in server time zone instead of in UTC


The java code mentioned below was working fine with Redshift jdbc driver 1.2. But, now seeing erroneous behaviour with Redshift jdbc driver 2.1. Can anyone confirm whether a workaround is possible in this java code or whether this is a bug in the driver 2.1 itself?

Information about Java code

  • In a timestamp data-typed column, the value is inserted using "getdate()".
  • It is supposed to add time in UTC (without timezone information).
  • How the insert query is written:
connection.prepareStatement("INSERT INTO sampleTable (tsColumn, ...) VALUES (getdate(), ...)");

jdbc driver inserts correct date in UTC

jdbc driver insertes date in PDT (server time zone) INCORRECT

Workaround attempted:

  • Attempted to modify getdate() part in the query as follows but it didn't work:
convert_timezone('UTC', getdate())


  • Is this a bug in the driver 2.1?
  • Is there any workaround/configuration/code-fix possible in the java code explained above?


asked 6 months ago54 views
1 Answer

Hi Hitesh,

We decided this behavior because JDBC respect JVM timezone. You can set session timezone if you like to change using JVM system property user.timezone value.

Thank you.

answered 5 months ago
  • Thank you @aws-msharma. Need to evaluate that option. And what about "convert_timezone('UTC', getdate())". Shouldn't it give time in UTC? Does the expression need any correction? Any other workaround?

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions