解決してくれてありがとうございます。私はOracleデータベースで日付と時刻情報を設定しているシナリオを扱っています.Ibatisを使ってこの日付を抽出し、それをjava Dateオブジェクトに割り当てます。IBATIS TypeHandlerCallback EST時間をUTC時刻に変換するgetResult(ResultGetterゲッター)
DateTimezoneTypeHandlerがTypeHandlerCallbackを実装パブリッククラス{
ます。public void setParameterを(ParameterSetterセッター、オブジェクトのパラメータ) はSQLExceptionを発生
{java.util.Date日付=(java.utilのを次のように私は私のTypeHandlerCallbackを実装しました.Date)パラメータ。 if(date == null)setter.setNull(Types.TIMESTAMP); else {Timestamp timestamp =新しいタイムスタンプ(date.getTime()); Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone( "UTC")); setter.setTimestamp(タイムスタンプ、カレンダー); }}
(ResultGetterゲッター)はSQLExceptionがスロー@OverrideパブリックオブジェクトのgetResult {
カレンダーカレンダー= Calendar.getInstance(はTimeZone.getTimeZone( "UTC"))。
return getter.getTimestamp(calendar);
}
@OverrideパブリックオブジェクトのvalueOf(文字列S){新しいUnsupportedOperationExceptionがスロー( "DateTimezoneTypeHandler.valueOf()がサポートされていません。")。 }}
私はデータベースにESTタイムゾーンで日付を保存しているので、getterはESTタイムゾーンで日付を持っています。データベースから日付を読み取るとgetResult関数が呼び出されますが、EST日付は変換されませんUTC/GMTタイムゾーンに変更します。それは日付を有する私のローカル・システム・タイムゾーン
**パブリックオブジェクトのgetResult(ResultGetterゲッター)のSQLExceptionをスローするESTのタイムゾーンを持つ日付に変換される{
カレンダーカレンダー= Calendar.getInstance(はTimeZone.getTimeZone( "UTC")) ;
return getter.getTimestamp(calendar);
} **
後、私のSQLマッピングです:
私はこのメソッドの実装と、なぜその必要はない機能で問題が何であるかを理解していないのです。
誰にもこの問題に関する提案/解決策がある場合は、教えてください。私は本当にそれを感謝します。
*「ソリューションをありがとうございますが、私にとってはうまくいかない」*はコンテキストから少し外れています... – RedFilter