2010-04-12 48 views
10

Tengo un bucle que revisa todas las noticias que tenemos en nuestro sitio. Uno de los campos es la fecha ${newsitem.value['Date']}, expresado en milisegundos. Me gustaría mostrar esta fecha en formato de mes/día/año en la página web. Pensé que la etiqueta de formato JSTL, <fmt:formatDate>, ayudaría, pero no lo he logrado. ¿Sabes como hacerlo?Cómo dar formato a la fecha en JSTL

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

Respuesta

36

Si la etiqueta JSTL formatDate debe hacer el trabajo en combinación con el cambio del valor de marca de hora en un objeto de fecha (que se requiere para evitar la excepción mencionada en el comentario).

Asegúrese de que ha definido correctamente el prefijo fmt en las declaraciones JSP

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

Render la salida, convertir la marca de tiempo a un valor de fecha primero. Estoy usando yyyy-MM-dd como format pattern, la etiqueta dateFormat admite other formatting options también.

<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

He intentado esto antes, pero que arroja este error: "No se puede convertir 1270738800000 org.opencms.jsp.util.CmsJspContentAccessValueWrapper de clase de tipo de clase java.util.Date" –

+1

El taglib URI indica un 10 versión antigua de JSTL. Por favor actualice – BalusC

+0

gracias por detectar el antiguo URI, lo actualicé como sugirió – BenM

Cuestiones relacionadas