2008-09-16 11 views
15

Estoy sacando una indicación de fecha y hora larga de una base de datos, pero quiero presentarla como una fecha usando solo etiquetas, sin Java incorporado en el JSP.

He creado mi propia etiqueta para hacer esto porque no he podido obtener las etiquetas parseDate y formatDate para que funcionen, pero eso no quiere decir que no funcionen.

¿Algún consejo?Formateo de una marca de tiempo larga en una fecha con JSTL

Gracias.

Respuesta

6

Las etiquetas parseDate y formatDate funcionan, pero funcionan con objetos Date. Puede llamar al nuevo java.util.Date (valor largo) para obtener un objeto de fecha y luego pasarlo a la etiqueta estándar.

en otro lugar que no sea el jsp crea tu objeto de fecha.

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

ponerlo en la solicitud y luego puede acceder a él en su etiqueta como esta.

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

Puede evitar tener que realizar ningún cambio en el servlet mediante la creación de un objeto de fecha dentro del JSP utilizando las jsp:useBean y jsp:setProperty etiquetas para ajustar el tiempo de objeto de fecha de nueva creación a la de la marca de tiempo. Por ejemplo:

<%@ 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

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

+0

Busted, punta de sombrero para BalusC – BenM

+0

Esto es bueno si su bucle a través de una lista y necesita hacer esto en una propiedad de cada elemento. – dalore

Cuestiones relacionadas