2010-04-12 8 views
10

Ich habe eine Schleife, die alle Nachrichten auf unserer Website durchläuft. Eines der Felder ist das Datum ${newsitem.value['Date']}, angegeben in Millisekunden. Ich möchte dieses Datum im Format Monat/Tag/Jahr auf der Webseite anzeigen. Ich dachte JSTL Format Tag, <fmt:formatDate>, würde helfen, aber ich war nicht erfolgreich. Weißt du, wie man es macht?Wie formatiere ich das Datum in JSTL

<cms:contentaccess var="newsitem" /> 
<h2><c:out value="${newsitem.value['Title']}" /></h2> 
// display date here   
<c:out value="${newsitem.value['Text']}" escapeXml="false" /> 

Antwort

36

Ja der JSTL formatDate Tag soll den Job in Kombination zu tun mit der Änderung des Timestamp-Wertes in ein Date-Objekt (die um die Ausnahme in Ihrem Kommentar erwähnt zu arbeiten ist erforderlich).

Stellen Sie sicher, dass Sie richtig die fmt Präfix in den JSP-Deklarationen Render

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 

den Ausgang definiert haben, konvertieren zuerst den Zeitstempelwert zu einem Datum. Ich verwende yyyy-MM-dd als das format pattern, das dateFormat Tag unterstützt other formatting options ebenso.

<cms:contentaccess var="newsitem" /> 
<jsp:useBean id="newsDate" class="java.util.Date" /> 
<jsp:setProperty name="newsDate" property="time" value="${newsitem.value['Date']}" /> 
<h2><c:out value="${newsitem.value['Title']}" /></h2> 
<fmt:formatDate pattern="yyyy-MM-dd" value="${newsDate}" /> 
<c:out value="${newsitem.value['Text']}" escapeXml="false" /> 
+0

Ich habe diese früher versucht, aber wirft es diesen Fehler: „konvertieren kann nicht 1270738800000 vom Typ Klasse org.opencms.jsp.util.CmsJspContentAccessValueWrapper Klasse java.util.Date“ –

+1

Die taglib URI zeigt eine 10 Jahr alte Version von JSTL. Bitte upgraden. – BalusC

+0

danke für die Entdeckung der alten URI, ich habe es aktualisiert, wie Sie vorgeschlagen haben – BenM