Datentypen Datum mit "May" zu Date parsen

  • Themenstarter Themenstarter AtlanTK
  • Beginndatum Beginndatum
A

AtlanTK

Gast
Hi
ich versuche einen String(26/May/2003:14:06:06 +0200) zu einem Date zu parsen.
Java:
DateFormat formatter = new SimpleDateFormat("d/MMMM/y:H:m:s Z");
			Date date = (Date)formatter.parse(st.nextToken());
Leider hängt das Programm an der Stelle "May".
Ich erhalte dann den Fehler:
Code:
Exception in thread "main" java.text.ParseException: Unparseable date: "26/May/2003:14:06:06 +0200"
Also konnte etwas in meinem Datum nicht konvertiert werden. Nun habe ich alles eingekreist und herausgefunden, dass, wenn ich Mai anstelle von May eintrage alles läuft. Wenn ich aber die toStringMethode des Date's anwende, erhalte ich May und nicht das gegebene Mai.
Jetzt frage ich mich, wo ich die Sprache die im Datum verwendet wird einstellen kann.

MfG,
AtlanTK
 
Setze die Locale!
Java:
DateFormat formatter = new SimpleDateFormat("d/MMMM/y:H:m:s Z", Locale.ENGLISH);
 
Du musst beim erstellen des DateFormats die Locale angeben. Wenn Du das nicht tust, wird die default Locale verwendet. Die ist bei Dir vermutlich DE und deswegen wird Mai akzeptiert, May aber nicht.
 
Wird dadurch die Zeitzone nicht verändert?
Oder wird die durch meine extra Angabe +200 überschrieben?
 
DateFormats sind nur zum parsen und ausgeben von Dates da. Sie verändern nicht die Zeitzone, welche auch nur bei Calendar eine Rolle spielt, nicht bei Date.

// Edit nach SlaterB's Antwort: Meine Aussage ist zu ungenau. Man kann bei DateFormats die timezone ändern. Nur, das setzen der Locale bewirkt diese Änderung nicht

// Edit2: Hier geht grad die Welt unter. So muss ein Tornado sich anfühlen...
 
Zuletzt bearbeitet von einem Moderator:
nana, wenn man "17:00" parst ist schon ziemlich wichtig, was das DateFormat als Zeitzone annimmt,
das ist aber in der Tat von Locale unabhängig, nur per Methode zu setzen
 

Neue Themen


Zurück
Oben