OracleResultSetからタイムスタンプを取得するときにCalendarオブジェクトを使用する必要がある状況があります。クラスレベルでCalendarオブジェクトを定義して、その単一のインスタンスを複数のスレッドでこのように利用できるようにしたいと思います。Calendar自体がスレッドセーフではないことは知っていますが、OracleのResultSet.getTimestamp(String、Calendar)の実装によって、Calendarがバックグラウンドでどのように使用されるかについてはわかりません。MySQLのソースコードを見ると、カレンダーはTimeZoneオブジェクト(どちらも変更されていないように見えます)をプルするために厳密に使用されているため、MySQLの場合はスレッドセーフのようです。カレンダーの単一のインスタンスがマルチスレッド環境でこのメソッドのOracleの実装で安全に使用できるかどうかを誰かが明らかにすることができますか?
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
Timestamp ts = rs.getTimestamp("example",cal);