2013-06-26 2 views
9

Come convertire 2013-06-24 a 24 giu 2013? Sto usando il codice qui sotto.Conversione aaaa-mm-gg in gg mm aaaa

date1="2013-06-24"; 
SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy"); 

try{ 
date2 = d.parse(date1); 
}catch (ParseException e1) { 
// TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

Ma sto ottenendo questo errore "java.text.ParseException: Data di analizzarlo: "2013/06/24"(all'offset 4)"

risposta

32

Hai bisogno di due DateFormat casi: uno per analizzare l'originale String, e un altro per l'uscita quello che si desidera.

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd"); 
DateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy"); 
String inputDateStr="2013-06-24"; 
Date date = inputFormat.parse(inputDateStr); 
String outputDateStr = outputFormat.format(date); 
+0

Grazie mille, sta funzionando ora. – user1740281

+0

Grazie mille –

1

Change

SimpleDateFormat d= new SimpleDateFormat("dd MMM yyyy"); 

con

SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd"); 

si devono seguire il modello date1. Poi si può formattare la data analizzato con

new SimpleDateFormat("dd MMM yyyy"); 
+0

ho cambiato, ma sto ottenendo questa risposta "Mon 24 giu 00:00:00 IST 2013" – user1740281

+0

Grazie per la risposta. – user1740281

2

Vedere il primo problema è che si utilizzano delimitatori diversi per Stringa e Data. Quindi si esegue "2013-06-24" su "2013 06 24" in String o si esegue il nuovo SimpleDateFormat ("dd MMM yyyy") sul nuovo SimpleDateFormat ("dd-MMM-yyyy").

E secondo problema è che non è possibile modificare direttamente formato come questo, in String si stanno avendo formato anno-mese-giorno, quindi per prima cosa un oggetto Date con lo stesso formato di modificarlo al formato desiderato, come di seguito:

date1="2013-06-24"; 

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 

Date dt = format.parse(date1); 

SimpleDateFormat your_format = new SimpleDateFormat("dd-MMM-yyyy"); 

date2 = your_format.format(dt); 
1
public String getStringFormatted(String datestring) { 
    String format = "dd MM yyyy"; 
    SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault()); 
    return sdf.format(new Date(datestring.replaceAll("-", "/"))); 
}