我正在尝试将XMLCalendar日期转换为正常日期格式,以便在JSP页面上呈现。使用下面的标签时我得到例外:
<fmt:formatDate value="${xmlCalendarDate}" pattern="dd/MM/yyyy" />
使用此标记我将获得异常
java.lang.IllegalArgumentException: Cannot convert 2015-07-02T21:33:35Z of type class org.eclipse.emf.ecore.xml.type.internal.XMLCalendar to class java.util.Date
是否有任何其他标记或其他方法在我的JSP页面上呈现此日期。
提前致谢。
答案 0 :(得分:2)
<td data-title="Order Date">
<fmt:formatDate value="${order.dateCreated.toGregorianCalendar().time}" pattern="yyyy/MM/dd HH:mm:ss" />
<%--${order.dateCreated}--%>
</td>
<!--order status-->
<td data-title="Order Status">
<c:if test="${order.status.code=='CREATED'}">
<spring:message code="web.page.order.create" />
</c:if>
</td>
<%-- ${order.status.code}</td>--%>
<!--quanity-->
<td data-title="Total"><span class="f_size_large fw_medium scheme_color">${order.currency.symbol}${order.totalChargeAmount.price}</span>
</td>
</tr>
答案 1 :(得分:0)
这是XMLGregorianCalendar
的子类。您可以首先通过java.util.Date
获取java.util.Calendar
,然后在其上调用XMLGregorianCalendar#toGregorianCalendar()
,从而获得Calendar#getTime()
。
因此,假设支持EL 2.2的环境,应该这样做:
<fmt:formatDate value="${xmlCalendarDate.toGregorianCalendar().time}" pattern="dd/MM/yyyy" />
如果您还没有使用EL 2.2(这是Servlet 3.0 / Java EE 6的标准部分),那么您需要在前端控制器中执行XMLGregorianCalendar
到Date
转换第一
Date date = xmlCalendarDate.toGregorianCalendar().getTime();
// ...