2013-06-26 22 views
9

Jak przekonwertować 2013-06-24 do 24 Jun 2013? Używam poniższego kodu.Konwersja rrr-mm-dd na dd mm rrrr

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(); 
} 

Ale ja dostaję ten błąd "java.text.ParseException: data Unparseable: "24.06.2013"(pod offsetem 4)"

Odpowiedz

32

Potrzebne są dwa przypadki: Jedna DateFormat do analizowania oryginalny String, a drugi do wyjścia ten, który chcesz.

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

Dziękuję bardzo, działa już teraz. – user1740281

+0

Dziękuję bardzo –

1

Zmień

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

z

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

Musisz przestrzegać wzoru date1. Następnie można sformatować analizowany datę z

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

Zmieniłem go, ale jestem coraz to odpowiedź "Mon Jun 24 00:00:00 IST 2013" – user1740281

+0

Dziękuję za odpowiedzi. – user1740281

2

Pierwszy problem polega na tym, że używasz różnych ograniczników dla ciągu i daty. Tak więc albo "2013-06-24" do "2013 06 24" w String lub zrobić nowy SimpleDateFormat ("dd MMM yyyy") do nowego SimpleDateFormat ("dd-MMM-rrrr").

I Drugim problemem jest to, że nie możesz bezpośrednio zmienić format tak, w String masz formacie rok-miesiąc-date, więc najpierw dokonać obiekt Date z samym formacie niż zmieniać go do pożądanego formatu, jak poniżej:

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("-", "/"))); 
}