Convert GMT DateTime String

Я новичок в Java и немного застрял в использовании SimpleDateFormat и Calendar . У меня есть Date-Object, и я хочу извлечь строку даты по Гринвичу, например yyyy-MM-dd HH: mm: ss . Я живу в Германии, и сейчас время по Гринвичу +0200. Время My Date-Object, например, 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);
}

На некоторых устройствах строка даты возвращается так, как я хочу. На других устройствах смещение вычисляется неправильно, и я получаю дату и время из объекта ввода даты. Вы можете дать мне несколько советов или советов? Думаю, мой способ получить часовой пояс по умолчанию не работает?

5
задан Marco 18 July 2011 в 09:18
поделиться