2010-11-14 5 views
4

У меня есть следующая строка:Формат в Java

Mon Sep 14 15:24:40 UTC 2009 

Мне нужно отформатировать его в строку, как это:

14/9/2009 

Как сделать это в Java?

ответ

7

Использование SimpleDateFormat (нажмите на ссылку, чтобы увидеть JavaDoc шаблонов) для разбора строки в одной модели к fullworthy Date и использовать другую для форматирования разобранной 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 
3

Вы можете использовать класс SimpleDateFormat для преобразования строки, которую вы имеете в объект даты. Формат даты может быть указан в конструкторе. Метод format преобразует строку в объект даты.

После получения объекта даты вы можете отформатировать его так, как вы хотите.

+0

Я пробовал: SimpleDateFormat sdfIn = новый SimpleDateFormat («Пн сен 14 15:24:40 UTC 2009»); но это не сработало! Я получил: Исключение в потоке «main» java.lang.IllegalArgumentException: Неверный символ шаблона 'o' – Dejell

+0

Вам нужно использовать шаблоны, показанные в таблице на этой странице: http://download.oracle.com/javase/1.4. 2/Docs/API/Java/текст/SimpleDateFormat.html – Khaled

-1
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)); 
0

Один вкладыш в 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"));