18

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.

scubabbl
  • 12,657
  • 7
  • 36
  • 36

2 Answers2

51

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"/>
MartinL
  • 3,198
  • 4
  • 18
  • 20
BenM
  • 4,056
  • 3
  • 24
  • 26
  • 1
    This is good if your looping through a list and you need to do this on a property of each item. – dalore Jun 04 '10 at 01:10
  • 1
    this is not work for me . it just display 12/31/1969 16:00 for all value i passed in – Xiwen May 21 '11 at 02:11
8

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"/>
JoshDM
  • 4,939
  • 7
  • 43
  • 72
ScArcher2
  • 85,501
  • 44
  • 121
  • 160
  • I needed to change it to new java.util.Date(longvalue*1000); since Java is expecting miliseconds if anyone has the same problem. – user2718671 May 08 '18 at 15:49