Datum parsen

deim0s

Mitglied
Hallo,

ich habe folgende Datumsangabe von einem Bild: Mon Sep 07 18:22:07 CEST 2009
Kann man das in ein "einfaches" Datums Format bringen wie 7.9.2009?

Mit folgendem kam ich nicht wirklich weiter, liefert immer eine parse Exception. Stimmt der ZZZZ Teil?
Java:
try {
SimpleDateFormat smpDate = new SimpleDateFormat("EEE MMM dd kk:mm:ss ZZZZ yyyy");
Date date1 = smpDate.parse("Mon Sep 07 18:22:07 CEST 2009");
System.out.println(date1);
} catch (ParseException ex2) {
ex2.printStackTrace();
}

Grüße,
deim0s
 
Zuletzt bearbeitet:
Date ist doch schon gut

nun noch ein neues
SimpleDateFormat smpDate2 = new SimpleDateFormat("dd.mm.yyyy");
oder so und dann die format-Methode, um einen String zu erstellen
 
Schau Dir die Klasse Calendar bzw ihr Kind GregorianCalendar an.
[Java]

import java.util.*;

GregorianCalendar cal = new Gregorian Calendar();
System.out.println(
cal.get(Calendar.DATE) + "." +
cal.get(Calendar.MONTH)+1 ) + "." +
cal.get(Calendar.YEAR)
);
[/Java]

Soory habe den Startpost nicht richtig gelesen.
 
Zuletzt bearbeitet:
Schau Dir die Klasse Calendar bzw ihr Kind GregorianCalendar an.
[Java]

import java.util.*;

GregorianCalendar cal = new Gregorian Calendar();
System.out.println(
cal.get(Calendar.DATE) + "." +
cal.get(Calendar.MONTH)+1 ) + "." +
cal.get(Calendar.YEAR)
);
[/Java]

Ja damit kann ich natürlich auch mein Datum schön ausgeben lassen, aber ich müßte meine Datumsangabe von dem Bild ja wieder selber parsen oder?
Grüße
 
Z steht für -0800 oder ähnlich, wie in der Anleitung zu lesen, wenn dann z,

überprüfe immer den Gegenweg:
erstelle dir new Date() und formatiere es mit einem Format, dann siehst du, welche Eingaben es auch akzeptieren wird,

CEST könnte Probleme machen, weiß aber nicht mehr genau warum
selber ausprobieren kann ich es frühestens morgen vormittag
 
Z steht für die Timezone nach RFC 822 einer vierstelligen Nummer zb -800.
Und z für die Timezone als Text zB PST (Pacific Standard Time).
z sollte wie SlaterB sagte funktionieren.
 
Vielen Dank euch schonmal, aber ich komm nicht drauf:
Am CEST sollte es nicht liegen, ich meine das kann ich auch aus dem String schmeißen. Hab jetzt auch diverse Varianten mit z durch.
Java:
        try {
                String datum = "Mon Sep 07 18:22:07 2009";

                SimpleDateFormat smpDate = new SimpleDateFormat(
                "EEE MMM dd kk:mm:ss yyyy");
                Date date1 = smpDate.parse(datum);

                System.out.println(date1);

        } catch (ParseException ex2) {
            ex2.printStackTrace();
        }

Ich werde jetzt den String denke ich "per Hand" parsen.
 
jetzt musste ich doch noch mal Ubuntu und Eclipse anschmeißen..
einfach nur
System.out.println(smpDate.format(new Date()));
ausführen, schon hättest du erkannt, dass am heutigen Montag 'Mo' statt 'Mon' erwartet wird,
gut, von da aus muss man noch weiterdenken, nicht so ganz deutlich, es liegt an deutscher vs. englischer Sprache

Java:
public class Test {

	public static void main(String[] args) throws Exception {
		String datum = "Mon Sep 07 18:22:07 2009";
		SimpleDateFormat smpDate = new SimpleDateFormat(
				"EEE MMM dd kk:mm:ss yyyy",Locale.US);
		System.out.println(smpDate.format(new Date()));
		Date date1 = smpDate.parse(datum);
		System.out.println(date1);
	}
}
 
Das A und O bei sowas: Immer eine Locale mitgeben, sonst ist das ganze nicht mehr systemunabhängig. Bei einem deutschen System ist mit CEST nicht viel. Mit [c]new SimpleDateFormat("EEE MMM dd kk:mm:ss ZZZZ yyyy", Locale.ENGLISH);[/c] bekommt man auch ein Mon Sep 07 18:22:07 CEST 2009 geparst.

edit: Grmbl... fast...
 

Zurück
Oben