Tôi có một thẻ như sau:JSTL - sử dụng formatDate với một java.sql.Timestamp
<%@ tag body-content="empty"%>
<%@ attribute name="timestamp" required="true" type="java.sql.Timestamp"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<jsp:useBean id="dateValue" class="java.util.Date" />
<c:if test="${not empty timestamp}">
<jsp:setProperty name="dateValue" property="time" value="${timestamp}" />
<span title="${timestamp}"> <fmt:formatDate value="${dateValue}"
pattern="MM/dd/yyyy HH:mm" /> </span>
</c:if>
tôi nhận được tuy nhiên các lỗi sau:
Lỗi 500: com.ibm.ws .jsp.JspCoreException: java.lang.IllegalArgumentException: không thể chuyển đổi 5/1/12 10:36 của kiểu lớp java.sql.Timestamp dài
tôi đã cố gắng để làm theo this answer để chuyển đổi một tim estamp đến một ngày trong JSTL, vì vậy tôi sẽ không thay đổi bất cứ điều gì trong servlet của tôi. Làm thế nào tôi có thể chuyển đổi một java.sql.Timestamp
thành một ngày để formatDate
có thể hoạt động với nó, bằng cách sử dụng JSTL?
Oh, derp. Tôi chưa bao giờ thử sử dụng 'formatDate' trực tiếp trên dấu thời gian, vì tôi đã thấy các câu hỏi trực tuyến về việc phải chuyển đổi một dấu thời gian thành một ngày để sử dụng nó với' formatDate'. Cảm ơn! –
Các câu hỏi khác đã nói về dấu thời gian như trong một giá trị 'long' cho biết thời gian epoch. Nhưng thực ra bạn đã có một 'java.sql.Timestamp', do đó, nó đã là một lớp con của' java.util.Date'. – BalusC