Datumsformat

javaxy

Mitglied
servus habe einen String mit dem Folgenden Format

16.05.2007

nun wollte ich den mit

SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");

Date datum = df.parse(myString);

die variable in ein Datumsformat parsen

dann kommt aber dieses Format raus

Wed May 16 00:00:00 CEST 2007

ich wills aber in dd.MM.yyyy haben weiß jemand wie das geht oder wo der Fehler liegt

Danke für jede Hilfe
 
Hi javaxy,

um das Datum in dem von Dir gewünschten Format zu bekommen, musst Du die einzelnen Daten einzeln holen:
Code:
datum = df.parse(mystring);
System.out.print(datum.getDate() + ".");
if(datum.getMonth() < 9) {
	System.out.print("0" + (datum.getMonth()+1) + "." + (datum.getYear() + 1900));
} else {
	System.out.print((datum.getMonth()+1) + "." + (datum.getYear() + 1900));
}

gruß klaus.

[EDIT] Ich hab jetzt nur geprüft, ob der Monat 2 Stellig ist, das gleiche muss natürlich auch noch für den Tag gemacht werden. Habs leider vergessen sorry.
 
Zuletzt bearbeitet:
nein

es reicht wenn du zur ausgabe das hier verwendest:

Java:
DateFormat fmt = DateFormat.getDateInstance();
System.out.println(fmt.format(date));
 
Ich verstehe nicht ganz was du willst.

16.05.2007 parsen in ein Date-Objekt und dieses dann wieder als 16.05.2007 ausgeben

Einen String in ein java.util.Date parsen tut man wie du es schon gemacht hast.
Einen Sting aus einem java.util.Date bekommst du wieder durch simpleDateFormat.format(java.util.Date)

Ich nehme an deine Ausgabe beruhte auf Date.toString() und das gibt halt das Datum mit einer Standard Internationalen Formatierung aus.
 
Zuletzt bearbeitet:
Hallo javaxy,

Du willst also einen Datum-String in ein java.util.Date-Object umwandeln? Dann ist Deine Vorgehensweise schon richtig. Allerdings wenn du danach das Date-Object ausgibst, wird die toString() der Date-Klasse benutzt und die hat ein eigenes Format (nämlich "EEE MMM dd HH:mm:ss zzz yyyy"). Also wenn Du die Ausgabe in einem gewünschten Format haben willst, musst Du den Formatter nochmal benutzen:
Java:
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
String formattedDateString = df.format(datum);

Grüße
Vincent
 
@Proko
Die Klasse SimpleDateFormat ist eine Erweiterung von java.text.DateFormat und bietet zusätzlich die Möglichkeit, beliebige Datum-Formate zu definieren im Gegensatz zum DateFormat, wo es nur wenige vordefinierte Formate gibt.

In dem speziellen Beispiel macht es zwar keinen Unterschied, ob man
Java:
DateFormat.getDateInstance().format(new Date());
oder
Java:
new SimpleDateFormat("dd.MM.yyyy").format(new Date());
benutzt. Aber sobald man das Programm auf einem Rechner mit einer anderen Spracheinstellung ausführt (z.B. englisch), liefert die erste Variante ein anderes Ergebnis:
Java:
Locale.setDefault(Locale.US);
System.out.println(DateFormat.getDateInstance().format(new Date()));
Die Ausgabe in dem Fall wäre:
Code:
Jun 26, 2007

Grüße
Vincent
 
Zurück