2017-05-15 1 views
-2

Ich habe ein Datum im String-Format: 2017-05-10. Ich muss diese Zeichenfolge in diesem 10/05/2017 umwandeln. Wie kann ich? Welche Bibliothek kann ich verwenden? Ich habe dies versucht, aber nicht funktioniertFormat ein Datum in Java

DateFormat df = new SimpleDateFormat("dd-MM-yyyy",Locale.ITALIAN); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(df.parse(data)); 
+0

Es funktioniert nicht, weil Ihr Parser das falsche Muster verwendet –

+1

Werfen Sie einen Blick auf die [java.time API] (https: // docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) –

+0

Bitte, es gibt nicht viel, was wir mit "es funktioniert nicht" tun können. Wenn Sie uns genau sagen, auf welche Weise es nicht funktioniert, wird es für uns viel einfacher. Haben Sie ein falsches Ergebnis erhalten, und wenn ja, welches falsche Ergebnis? Eine Fehlermeldung? Eine Ausnahme mit einem Stacktrace? Bitte fügen Sie diese in Ihre Frage ein. –

Antwort

1

Sie folgenden Code versuchen:

DateFormat dfto = new SimpleDateFormat("dd/MM/yyyy"); 
DateFormat dffrom = new SimpleDateFormat("yyyy-MM-dd"); 
Date today = dffrom.parse("2017-05-10"); 
String s = dfto.format(today); 
+0

ist fantastico !!! – Michael

0

Ich würde einfach eine interne Java-Funktion ausführen, die mit dem String-Objekt gebaut kommt, unten beschrieben:

Sie müssen möglicherweise maskiert werden, aber da es Char-Datentyp ist mein erster Gedanke ist nein.

2

Kann auch die java.time API getan werden:

String date = "2017-05-10"; 
LocalDate ld = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd")); 
String formattedDate = DateTimeFormatter.ofPattern("dd/MM/yyyy").format(ld); 
+0

Dies ist die empfohlene Methode für jeden, der Java 8 oder höher verwendet. 'DateFormat',' SimpleDateFormat' und 'Calendar' sind seit einigen Jahren überholt. –