2013-09-03 2 views
0

Мне нужно разобрать эту строку для того, чтобы преобразовать его в Date:JSTL FMT: parsedate атрибута PubDate в RSS 2.0

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" 

Что не так?

+0

Выполнено другое значение. –

ответ

0

<fmt:parseDate> попытается проанализировать дату на основе locale. Вы можете увидеть, что это, вероятно, будет через <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)

+0

та же ошибка: 'значение атрибута не может быть проанализирован' – Oneiros

0

Я имел тот же вопрос, и я нашел обходное решение, используя те же type или pattern атрибуты как в fmt:format, так и в fmt:parse.

for example suppose we have a current date object as
<% 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"/>

OR you could try with type as both or time or date .

  • <f:formatDate value="${date }" type="both" var="fmt_date"/>
  • <f:parseDate value="${fmt_date }" type="both" var="parse_date"/>

hope it helps.!