У меня есть строка даты, которую я возвращаю из API. Дата в этом формате.
2018-10-15T17:52:00Z
Теперь я хочу преобразовать эту строку в формат даты UTC. Это код, который я использую для этого,
private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
try {
String expiryDateString = "2018-10-15T17:52:00Z";
final SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT,Locale.US);
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
return formatter.parse(expiryDateString);
} catch (final ParseException e) {
return null;
}
Этот метод возвращает дату как
Пн, 15 октября, 13:52:00 по восточному поясному времени 2018 г.
Я не могу использовать функции Java 8. есть ли способ преобразовать строку в дату и время UTC без использования методов Java 8?
Z
означает часовой пояс UTC. - person Andreas   schedule 15.10.2018java.util.Date
всегда является датой UTC. Часовой поясEDT
, который вы видите, применяется, когда значение даты UTC отформатировано для отображения. Это ваша логика отображения ошибочна, а не код в вопросе. - person Andreas   schedule 15.10.2018SimpleDateFormat
, который вы использовали, не только давно устарел, но и, как известно, доставляет много хлопот. С современным API гораздо приятнее работать. - person Ole V.V.   schedule 15.10.2018