私はJavaにかなり慣れていないので、andの使用に少しこだわっていSimpleDateFormat
ますCalendar
。Date-Objectがあり、のようなGMT日付文字列を抽出したいと思いますyyyy-MM-dd HH:mm:ss
。私はドイツに住んでいて、現在GMT+0200です。私の日付-オブジェクトの時刻は、たとえば2011-07-18 13:00:00
です。今必要なのはです2011-07-18 11:00:00
。タイムゾーンのオフセットは自動的に計算されます。
私はこのようなことを試みましたが、どこかに障害があると思います:
private String toGmtString(Date date){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone timeZone = TimeZone.getDefault();
Calendar cal = Calendar.getInstance(new SimpleTimeZone(timeZone.getOffset(date.getTime()), "GMT"));
sd.setCalendar(cal);
return sd.format(date);
}
一部のデバイスでは、日付文字列が希望どおりに返されます。他のデバイスでは、オフセットが正しく計算されておらず、入力された日付オブジェクトから日付と時刻を受け取ります。ヒントやアドバイスをいただけますか?デフォルトのタイムゾーンを取得する方法が機能しないと思いますか?