Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Formatting a long timestamp into a Date with JSTL

Tags:

java

jsp

jstl

I am pulling a long timestamp from a database, but want to present it as a Date using Tags only, no embedded java in the JSP.

I've created my own tag to do this because I was unable to get the parseDate and formatDate tags to work, but that's not to say they don't work.

Any advice?

Thanks.

like image 484
scubabbl Avatar asked Sep 16 '08 18:09

scubabbl


2 Answers

You can avoid having to make any changes to your Servlet by creating a date object within the JSP using the jsp:useBean and jsp:setProperty tags to set the time of newly created date object to that of the time stamp. For example:

<%@ 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"/>
like image 171
BenM Avatar answered Sep 28 '22 03:09

BenM


The parseDate and formatDate tags work, but they work with Date objects. You can call new java.util.Date(longvalue) to get a date object, then pass that to the standard tag.

somewhere other than the jsp create your date object.

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

put it on the request and then you can access it in your tag like this.

<fmt:formatDate value="${dateValue}" pattern="MM/dd/yyyy HH:mm"/>
like image 41
ScArcher2 Avatar answered Sep 28 '22 02:09

ScArcher2