Oracleにjdbcで接続したときのタイムゾーンの設定

以下のような感じらしい。

デフォルトではクライアントのユーザーが使用しているタイムゾーンが使用される。=システム環境変数(user.timezone)の値


システム環境変数で指定されているため、実行時のオプションで上書きすることが出来る

java -jar XXXX.jar -Duser.timezone=Asia/Tokyo


特定のセッションだけタイムゾーンを変更したい場合は、ALTER SESSIONで変更することが出来る。
タイムゾーンを変更するためのAPIは調べた限り存在しないっぽい。

ALTER SESSION SET TIME_ZONE='Asia/Tokyo'


現在のセッションのタイムゾーンを確認したい場合は以下のSQLを実行する。

select SESSIONTIMEZONE from dual


なお、コネクションプールを使用している場合はセッションの変更は引き継がれてしまうので注意。