У меня есть следующая строка:
Mon Sep 14 15:24:40 UTC 2009
Мне нужно отформатировать его в строку, подобную этой:
14/9/2009
Как мне это сделать на Java?
Используйте SimpleDateFormat (щелкните ссылку javadoc, чтобы просмотреть шаблоны), чтобы проанализировать строку в одном шаблоне до полноценного Date и использовать другой для форматирования проанализированного Date на строку в другом шаблоне.
SimpleDateFormat
Date
String string1 = "Mon Sep 14 15:24:40 UTC 2009"; Date date = new SimpleDateFormat("EEE MMM d HH:mm:ss Z yyyy").parse(string1); String string2 = new SimpleDateFormat("d/M/yyyy").format(date); System.out.println(string2); // 14/9/2009
Вы можете использовать класс SimpleDateFormat для преобразования имеющейся у вас строки в объект даты.Формат даты можно указать в конструкторе.Метод format преобразует строку в объект даты.
После получения объекта даты его можно отформатировать так, как вы хотите.
Один лайнер в Java 8 и выше.
String localDateTime= LocalDateTime.parse("Mon Sep 14 15:24:40 UTC 2009", DateTimeFormatter.ofPattern("EE MMM dd HH:mm:ss z yyyy")).format(DateTimeFormatter.ofPattern("d/M/yyyy"));
Date d = new Date("Mon Sep 14 15:24:40 UTC 2009"); SimpleDateFormat f = new SimpleDateFormat("dd/M/yyyy"); String s = new String(f.format(d));