JVM タイムゾーンの詳細:インド標準時アジア/カルカッタ019800000
DB タイムゾーンの詳細 :中央標準時アメリカ/シカゴ 3600000-21600000
サンプルコード:
String sql = "select systimestamp as base from dual";
....
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
System.out.println(rs.getTimestamp("base"));
System.out.println(rs.getString("base"));
}
テスト-1: ojdbc14.jar 10.1.0.3.0 を使用してテストしたところ、期待どおりに動作し、db 時間を出力しました
出力:
2013-12-05 01:23:57.141583
2013-12-5 1.23.57.141583000 -6:0
テスト 2: ojdbc5.jar および ojdbc6.jar 11.2.0.3.0 を使用してテストしました。
出力:
2013-12-05 12:57:54.3508
2013-12-05 01:27:54.3508 -6:00
getTimestamp() が現地時間を出力する Test-2 ojdbc ドライバー バージョン 11.2.0.3.0 の問題点を教えてください。私のアプリケーションは、DB タイムスタンプと一致する getTimestamp() の Test-1 のような db 時間を期待しています。