This blog has moved to
http://blog.matthias-reining.com

Die bestehenden Artikel bleiben vorerst alle bei blogspot. Neue Artikel veröffentliche ich allerdings nur noch auf http://blog.matthias-reining.com

Donnerstag, 25. Februar 2010

Struts2 - Datum ohne Uhrzeit anzeigen unter Berücksichtung der Locale Einstellungen

Leider habe ich rund um die Struts 2 Funktion s:date keine Funktion gefunden, die mir von einem Objekt java.util.Date, nur das Datum ohne die Uhrzeit anzeigt. Auch eine Suche bei google nach >struts2 "date without time"< liefert für mich keine brauchbaren Ergebnisse...

Eine Möglichkeit wäre natürlich dies über den format Paramter von s:date zu bewerkstelligen.

<s:date name="today" format="dd.MM.yyyy"/>

Allerdings hätte man hier dann fix das deutsche Datumsformat hinterlegt. Mein Ziel ist es aber je nach Locale Einstellungen das Datum anzuzeigen.

Lässt man den format Parameter weg, wird beim Einsatz von s:date leider immer die Uhrzeit mit angezeigt. Mit s:date habe ich hier keinen Weg gefunden :-(

Mit folgender Alternative habe ich aber mein gewünschtes Ziel erreicht:

in den Sprachproperties (messages.properties) kann man folgendes Pattern hinterlegen:

format.dateLong={0,date,long}

Wenn man anschließend auf der JSP Seite folgende Code verwendet, wird das Jahr mit den entsprechenden Locale Einstellungen ausgegeben.

<s:text name="format.dateLong">
    <s:param name="value" value="today"></s:param>
</s:text>

Das Ergebnis sieht dann wie folgt aus:

25. Januar 2010   (bei Locale 'de')
January 1, 2010 (bei Locale 'en')

Anstelle des Datumsformat 'long' können natürlich auch andere verwendet werden (siehe http://java.sun.com/javase/6/docs/api/java/text/DateFormat.html)

Weitere Informationen hierzu befinden sich auf der Struts Seite (http://struts.apache.org/2.1.8.1/docs/date.html)