Я новичок в 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);
}
На некоторых устройствах строка даты возвращается так, как я хочу. На других устройствах смещение вычисляется неправильно, и я получаю дату и время из объекта ввода даты. Вы можете дать мне несколько советов или советов? Думаю, мой способ получить часовой пояс по умолчанию не работает?