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

时间:2017-06-22 16:35:45

标签: java jsp

我的模型中有一个字符串2008-09-18 00:00:00.0,我希望以以下格式在我的JSP页面上显示它:Sep 18 2008

我试试这个:

<fmt:parseDate value="${myObj.myDate}" type="date" pattern="yyyy-MM-dd hh:mm:ss.s" var="formatedDate"/>   
<fmt:formatDate value="${formatedDate}"  type="date" pattern="MMM dd yyyy"/>

但我反复得到错误:

java.text.ParseException: Unparseable date: "2008-09-18 00:00:00.0"

我已经尝试了一系列不同组合的模式:

  • yyyy-MM-dd hh:mm:ss.s

  • yyyy-MM-dd hh:mm:ss.S

  • yyyy-MM-dd hh:mm:ss

  • YYYY-MM-DD

  • YYYY-MM-DD

每次都有相同的结果。

但我不明白该模式是不可解析的,并且错误消息不太具描述性。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

parseDate代码中进行以下两项更改。

  1. type更改为&#39; date&#39; &#39;两个&#39;您的输入日期包含日期和时间。
  2. 可选择指定其他属性timeStyle,其值为“完整”字样。或者&#39; long&#39;或者&#39; medium&#39;。

答案 1 :(得分:0)

您是否尝试“拆分”您要解析的日期

我试图做类似的事情,但是将 LocalDate和LocalDateTime 转换为 jsp视图

<fmt:parseDate value="${date.year}-${date.monthValue}-${date.dayOfMonth} ${date.hour}:${date.minute}:${date.second}" pattern="yyyy-MM-dd HH:mm:ss" var="parsedDate" type="both" timeStyle="long"/>

这对我特别有用,因为LocalDate类型甚至在前一天也显示 dayOfMonth (例如:如果实际日为05,则显示04)。

<fmt:parseDate value="${date.year}-${date.monthValue}-${date.dayOfMonth + 1}" pattern="yyyy-MM-dd" var="parsedDate" type="date"/>