Преобразовать дату в другой формат
У меня есть Thu Aug 04 01-05-15 MSK 2022 — приходящая дата (приходит как строка)
Хотелось бы ее превратить в 04.08.2022 01-05-15
01-05-15 - это время
дефисы оставил т.к. идет копирование файла и : не подходят при копировании
Подскажите, какой метод следует выбрать, чтобы преобразовать данные в корректный формат?
Ответы (3 шт):
Автор решения: Wlad
→ Ссылка
public String getCoolDate(Date date){
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh-mm-ss");
return sdf.format(date);
} catch (Exception exception){
return null;
}
}
// логи
Thu Aug 04 12:15:15 GMT+03:00 2022
04.08.2022 12-15-15
Автор решения: Александр Сидорин
→ Ссылка
Решил таким способом. Данные приходят как строка, поэтому есть сложности...
DateTimeFormatter newFormatter = DateTimeFormatter.ofPattern( "EEE MMM dd HH:mm:ss zzz yyyy", new Locale("en", "EN") );
ZonedDateTime newDate = ZonedDateTime.parse( message.getSentDate().toString().trim(), newFormatter );
String month = String.valueOf(newDate.getMonthValue());
String year = String.valueOf(newDate.getYear());
String day = String.valueOf(newDate.getDayOfMonth());
String hour = String.valueOf(newDate.getHour());
String minute = String.valueOf(newDate.getMinute());
String second = String.valueOf(newDate.getSecond());
String date = day + "." + month + "." + year + " " + hour + "_" + minute + "_" + second;
Автор решения: Vadik
→ Ссылка
Парсим дату:
String input = "Thu Aug 04 23-05-15 MSK 2022";
SimpleDateFormat parser = new SimpleDateFormat("E MMM dd HH-mm-ss z y");
Date date = parser.parse(input);
Далее, форматируем:
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.y HH-mm-ss");
System.out.println(formatter.format(date));
На выходе получим дату в формате:
04.08.2022 23-05-15