5

私は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);
}

一部のデバイスでは、日付文字列が希望どおりに返されます。他のデバイスでは、オフセットが正しく計算されておらず、入力された日付オブジェクトから日付と時刻を受け取ります。ヒントやアドバイスをいただけますか?デフォルトのタイムゾーンを取得する方法が機能しないと思いますか?

4

3 に答える 3