Ваша идея верна. Если бы вы удосужились заглянуть в код еще раз, вы бы знали, что сделали неправильно.
Ваш код работает нормально. Но вы не видите, чего хотите, потому что вы (скорее всего) инициализировали
java.text.SimpleDateFormat res_format = new SimpleDateFormat("dd/mm/yyyy HH:mm");
для вывода
, и вы используете совершенно новый SimpleDateFormat
, совершенно неожиданно для установки часового пояса и отображения.
Если вы измените
DateFormat gmtFormat = new SimpleDateFormat();
до
java.text.SimpleDateFormat gmtFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm zz");
Вы получаете то, что хотите.
(Обратите внимание также на изменение формата. Это dd/MM/yyyy
, а не dd/mm/yyyy
)
Ваш код был бы намного легче читать (для вас и других), если бы вы логически сгруппировали блоки и не использовали полностью квалифицированные имена для (почти) всех классов
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse("2011-07-04 00:00:00");
SimpleDateFormat gmtFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm zz");
TimeZone gmtTime = TimeZone.getTimeZone("GMT+00");
gmtFormat.setTimeZone(gmtTime);
System.out.println("Current Time: " + date);
System.out.println("Time:" + gmtFormat.format(date));