JSTL fmt:RSS 2.0中pubDate属性的解析

时间:2013-09-03 17:54:30

标签: jsp parsing date jstl

我需要解析此String以将其转换为Date:

Tue, 3 Sep 2013 19:47:52 +0200

我正在使用

<fmt:parseDate var="parsedDate" value="${pubDate}" type="both"/>

但结果是:

org.apache.jasper.JasperException: javax.servlet.ServletException:
javax.servlet.jsp.JspException: In &lt;parseDate&gt;,
value attribute can not be parsed: "Tue, 3 Sep 2013 19:04:18 +0200"

这有什么问题?

2 个答案:

答案 0 :(得分:0)

<fmt:parseDate>将尝试根据区域设置解析日期。您可以通过<fmt:formatDate>了解这可能是什么:

<jsp:useBean id="now" class="java.util.Date"/>
<fmt:formatDate value="${now}" type="both"/>

我建议使用显式模式:

<fmt:parseDate var="parsedDate" value="${pubDate}" 
    pattern="EEE, dd MMM yyyy HH:mm:ss Z"/>

(模式字母来自SimpleDateFormat

答案 1 :(得分:0)

我遇到了同样的问题,我在typepattern中使用相同的fmt:formatfmt:parse属性找到了解决方法。

  例如,

  假设我们将当前日期对象作为
  <% pageContext.setAttribute("date", new Date()); %>

  • <f:formatDate value="${date }" pattern="dd-mm-yyyy" var="fmt_date"/>
  • <f:parseDate value="${fmt_date }" pattern="dd-mm-yyyy" var="parse_date"/>
  

或者您可以尝试将类型设为bothtimedate

  • <f:formatDate value="${date }" type="both" var="fmt_date"/>
  • <f:parseDate value="${fmt_date }" type="both" var="parse_date"/>
  希望它有所帮助。!