Есть строка с датой и времнем в определенном формате
String date = "Tue Sep 11 08:28:59 EDT 2018";
На выходе хочу получить
11.09.2018 08:28
Но получаю
10.09.2018 15:28
Формат
"EEE MMM d HH:mm:ss z yyyy"
Хочу запарсить дату и вывести ее в другом формате
"dd.MM.yyyy HH:mm"
Моя реализация
public static String getTime(String time, String inFormat, String outFormat) throws ParseException {
Date date = new Date();
SimpleDateFormat simpleFormet = new SimpleDateFormat(inFormat);
SimpleDateFormat simpleFormet2 = new SimpleDateFormat(outFormat);
date = simpleFormet.parse(time)
return simpleFormet2.format(date);
}
Проблема в том что время всегда сбрасывается на текущее, подскажите как правильно сделать
Фокус в том, что ваше время Tue Sep 11 08:28:59 EDT 2018
указано для часового пояса EDT
, т.е. UTC-4, а объект Date
хранит время по Гринвичу. Соответственно строка
simpleFormet2.format(date);
и дает время на 4 часа больше (а не текущее), чем было передано.
В Java8 появилась новая библиотека для работы со временем java.time
. В ней есть класс LocalDateTime
который хранит дату вместе с часовым поясом.
Использование:
public static String getTime2(String time, String inFormat, String outFormat) {
DateTimeFormatter simpleFormet = DateTimeFormatter.ofPattern(inFormat);
DateTimeFormatter simpleFormet2 = DateTimeFormatter.ofPattern(outFormat);
LocalDateTime date = LocalDateTime.parse(time, simpleFormet);
return date.format(simpleFormet2);
}
Чтобы дата и время были такими же как изначально, нужно получить значение z
в исходной строке. Это можно делать разными способами, в том числе используя Joda DateTime.
String timeZone = date.substring(20,3);
if ("EDT".equals(timeZone)) timeZone = "GMT-4";
simpleFormet2.setTimeZone(TimeZone.getTimeZone(timeZone));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ищу пример реализации программного управления транзакциями в Spring Boot и Spring Data JPAВезде только для spring framework
Коллеги, добрый день! Вот такой стек исключения выдается при запуске собранного мавеном джарника моего приложения:
Есть список имен и дней рожденияНужно получить список имен, у которых в ближайшие две недели будет день рождения, используя (желательно) java