2010-11-14 7 views
4

je la chaîne suivante:Format date en Java

Mon Sep 14 15:24:40 UTC 2009 

je dois formater dans une chaîne comme ceci:

14/9/2009 

Comment puis-je le faire en Java?

Répondre

7

Utilisez SimpleDateFormat (cliquez sur le lien javadoc pour voir les modèles) pour analyser la chaîne dans un modèle à un Date fullworthy et utiliser un autre pour formater la analysable Date à une chaîne dans un autre motif.

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

Vous pouvez utiliser la classe SimpleDateFormat pour convertir la chaîne que vous avez en objet de date. Le format de date peut être donné dans le constructeur. La méthode de format convertit la chaîne en un objet date. Après avoir obtenu l'objet date, vous pouvez le formater comme vous le souhaitez.

+0

J'ai essayé: SimpleDateFormat sdfIn = new SimpleDateFormat ("Mon Sep 14 15:24:40 UTC 2009"); mais ça n'a pas marché! J'ai obtenu: Exception dans le fil "principal" java.lang.IllegalArgumentException: Caractère de motif illégal 'o' – Dejell

+0

Vous devez utiliser les modèles présentés dans le tableau de cette page: http://download.oracle.com/javase/1.4. 2/docs/api/java/text/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

Un revêtement de java 8 et supérieur.

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"));