Java Calendar で奇妙な状況が発生しています。オブジェクトのマッピングに dozer マッパーを使用しています。
このオブジェクトを次の形式に変換するメソッドを書きたいと思います。yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
要素 2010-11-11T09:30:47.000Z と言う
public Calender getValue(Date source,Calender c) {
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
calendar.setTime(source);
return calendar;
}
プログラムを実行すると、2010-11-11T04:00:47.000Z が出力されます - タイムゾーンを GMT に設定しているため (9.30 - 5.30 = 4.00)
オブジェクトの形式と値を同じにしたいのですが、TimeZone を GMT に設定しないと、2008-11-21T09:30:47.000+05:30 と表示されます。
2010-11-11T09:30:47.000Z として欲しい。
カレンダーに5.30を追加してみました。
calendar.add(Calendar.HOUR, 5);
calendar.add(Calendar.MINUTE, 30)
しかし、これが他の場所から実行された場合、差は5.30にはなりません。したがって、5.30をcalendergetに追加することはできません
この問題を解決する方法はありますか? Calender オブジェクトを返したい。
どんな提案や助けも大歓迎です