2008-09-16 4 views
15

Ich ziehe einen langen Zeitstempel aus einer Datenbank, aber möchte ihn als Datum nur mit Tags, ohne eingebettetes Java in der JSP darstellen.

Ich habe mein eigenes Tag dafür erstellt, weil ich die Tags parseDate und formatDate nicht verwenden konnte, aber das heißt nicht, dass sie nicht funktionieren.

Irgendwelche Ratschläge?Formatieren eines langen Zeitstempels in ein Datum mit JSTL

Danke.

Antwort

6

Die Tags parseDate und formatDate funktionieren, aber sie arbeiten mit Date-Objekten. Sie können ein neues java.util.Date (longvalue) aufrufen, um ein Datumsobjekt zu erhalten, und dieses dann an das Standard-Tag übergeben.

irgendwo anders als die JSP erstellen Sie Ihr Date-Objekt.

long longvalue = ...;//from database. 
java.util.Date dateValue = new java.util.Date(longvalue); 
request.setAttribute("dateValue", dateValue); 

setzen Sie es auf die Anfrage und dann können Sie es in Ihrem Tag wie folgt zugreifen.

<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/> 
42

können Sie vermeiden, indem Sie eine Date-Objekt innerhalb der JSP Änderungen an Ihrem Servlet vornehmen zu müssen mit den jsp:useBean und jsp:setProperty-Tags, die Zeit neu erstellten Datumsobjekt zu dem der Zeitstempel zu setzen. Zum Beispiel:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 
<jsp:useBean id="dateValue" class="java.util.Date"/> 
<jsp:setProperty name="dateValue" property="time" value="${timestampValue}"/> 
<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/> 
+8

Anfragewert! http://stackoverflow.com/questions/2620676/jstl-format-date;) – BalusC

+0

Busted, Hut Tipp zu BalusC – BenM

+0

Dies ist gut, wenn Sie eine Liste durchlaufen und Sie dies auf einer Eigenschaft jedes Elements tun müssen. – dalore