Мне нужно получить текущее время в часовом поясе «EDT». Я получил текущее время и отформатировал его в «EDT», я получаю время, как я хотел. Но когда я попытался разобрать его на дату в часовом поясе «EDT», я все равно получаю время в формате «IST» после разбора даты. Я не знаю, что я делаю неправильно.Преобразование часового пояса в «EDT» в Java
Date date = new Date();
String format = "MM/dd/yyyy hh:mm:ss Z";
DateFormat formatter = new SimpleDateFormat(format);
formatter.setTimeZone(TimeZone.getTimeZone("America/New_York"));
String dateString = formatter.format(date);
System.out.println(dateString);
try { System.out.println(formatter.parse(dateString));
}
catch (ParseException e) {
e.printStackTrace();
}
EDT не является часовым поясом. Это * часть * восточных часовых поясов, но она не действует большую часть года. Проблема человека заключается в том, что вы все еще печатаете 'Date.toString', хотя * всегда * использует часовой пояс системы по умолчанию. Значение «Дата» * не имеет часового пояса *. –
Календарный экземпляр = Calendar.getInstance (TimeZone.getTimeZone («Америка/Нью-Йорк»)); System.out.println (instance.getTimeZone()); System.out.println (instance.getTime()); ** Выход: ** Восточное стандартное время Пн июл 01 18:02:10 IST 2013 – Sarath
Предварительно «Восточное стандартное время» является результатом 'TimeZone.toString()'. Часть IST объясняется моим предыдущим комментарием. –