DateFormat

fsicher

Bekanntes Mitglied
Hallo allerseits

Ich möchte das Datum so formatieren, dass das Jahr vierstellig ausgegeben wird. Mit SimpleDateFormat ist dies an sich kein Problem, aber, ich muss die Locale berücksichtigen.

Es handelt sich um eine Web-Anwendung, bei der ein Datum eingegeben wird. Da ich mindestens de und en unterstützen muss, muss ich beim Formattieren die Client-Locale berücksichtigen. Dazu habe ich folgendes gemacht.

Java:
// Locale kann ich abfragen 
// GregorianCalenar bekomme ich als Objekt (obj)

GregorianCalendar gc = null;

if (obj instanceof GregorianCalendar){
    gc = (GregorianCalendar)obj;

    DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, clientLocale);
    String dateStr = df.format(gc.getTime());
}

return null;

So bekomme ich für 9. Juli 2011 folgende Ausgabe:

[XML]7/9/11[/XML]

Ich würde aber am liebsten die Ausgabe wie folgt haben:

[XML]7/9/2011[/XML]

Kann man so was machen, ohne dass ich den String nachträglich zerlegen und ergänzen muss? Denn, je nach Client-Locale, wird der String unterschiedlich aussehen, und das macht es kompliziert.

Danke.
 

eRaaaa

Top Contributor
Das getDateInstance liefert dir auch ein SimpleDateFormat! Du könntest dir das Pattern holen und dann eben das yy ersetzen durch yyyy, damit wäre auch dein Bedenken welches du in deinem letzten Satz geäußert hast kein Problem:

Java:
		    DateFormat df = new SimpleDateFormat(((SimpleDateFormat)DateFormat.getDateInstance(DateFormat.SHORT, clientLocale)).toPattern().replace("yy", "yyyy"));
		    String dateStr = df.format(gc.getTime());

:D
 

Ähnliche Java Themen

Neue Themen


Oben