Formatear una marca de tiempo larga en una fecha con JSTL
Pregunta
Estoy extrayendo una marca de tiempo larga de una base de datos, pero quiero presentarla como una fecha usando solo etiquetas, sin Java integrado en el JSP.
Creé mi propia etiqueta para hacer esto porque no pude hacer que funcionaran las etiquetas parseDate y formatDate, pero eso no quiere decir que no funcionen.
¿Algún consejo?
Gracias.
Solución
Las etiquetas parseDate y formatDate funcionan, pero funcionan con objetos Date.Puede llamar a new java.util.Date(longvalue) para obtener un objeto de fecha y luego pasarlo a la etiqueta estándar.
En algún lugar que no sea jsp, cree su objeto de fecha.
long longvalue = ...;//from database.
java.util.Date dateValue = new java.util.Date(longvalue);
request.setAttribute("dateValue", dateValue);
póngalo en la solicitud y luego podrá acceder a él en su etiqueta de esta manera.
<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/>
Otros consejos
Puede evitar tener que realizar cambios en su servlet creando un objeto de fecha dentro del JSP utilizando el jsp:useBean
y jsp:setProperty
etiquetas para establecer la hora del objeto de fecha recién creado 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"/>