如何在JSTL中显示格式化的日历类型?

mae*_*tpo 8 java jsp jstl

我在Java中使用Calendar类型,我想在JSTL中显示格式化日期.

我在努力:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<fmt:parseDate var="date" type="date" dateStyle="short" value="${photo.dateCreated}" />
<c:out value="${data}" />
Run Code Online (Sandbox Code Playgroud)

但它不起作用:

java.text.ParseException:无法解析的日期

JSTL格式可以Calendar吗?

Bal*_*usC 28

不,它只能格式化java.util.Date类型,因为它DateFormat#format()在引擎盖下使用.使用Calendar#getTime()从抓住它Calendar.

<fmt:formatDate value="${photo.dateCreated.time}" type="date" dateStyle="short" />
Run Code Online (Sandbox Code Playgroud)

请注意,您需要fmt:formatDate这个,而不是fmt:parseDate.格式化是将Date对象转换为人类可读日期字符串,解析是将人类可读日期字符串转换为Date对象.

  • 不要忘记fmt的taglib定义&lt;%@ taglib prefix =“ fmt” uri =“ http://java.sun.com/jsp/jstl/fmt”%&gt;` (2认同)