2013-09-16 12 views
0

Я пытаюсь преобразовать строковый объект, который отформатирован в формате даты (т.е. 2013-12-14 10: 00: 00.0) и передается в jsp как таковой, в другой (т.е. 12/14/13 10:00:00) на jsp. Я попытался следующие строки кода, пытаясь разобрать строку «дата» (который случается быть в определенном формате даты) до фактического формата даты:преобразование строки в формат даты в jsp

<fmt:parseDate value="${row.date}" type="date" pattern="yyyy-MM-dd hh:mm:ss.S" var="formatedDate"/> 
<td class="dataField"><fmt:formatDate value="${formatedDate}" type="date" pattern="MM/dd/yy hh:mm:ss a"/></td> 

Но я получаю следующее исключение в моя консоль:

16: 14: 01265 ERROR [[springapp]] Servlet.service() для сервлета springapp бросил исключение java.text.ParseException: не поддается синтаксическому анализу дата: «2013-12-14 10:00 : 00.0 " at java.text.DateFormat.parse (DateFormat.java:337)

У кого-нибудь есть лучшая идея, почему это не работает?

+2

Параметр '.0' в конце концов, не в шаблоне синтаксического анализа. – SJuan76

+0

Правильно: вы хотите добавить '.S' в конце вашего шаблона. –

+0

отредактировал мой вопрос, имея шаблон там все еще дал мне ту же ошибку – user974047

ответ

2

Проблема с вашим временем: 10:00:00.0 У вас также есть миллисекунды. Чтобы проанализировать такие даты, вы должны изменить свой шаблон как yyyy-MM-dd hh:mm:ss.S

Подробнее читайте here.

+0

Я обновил описание, код все еще не работает, когда у меня был этот формат .. – user974047

+0

Не может быть. Этот блок кода отлично работает: 'new java.text.SimpleDateFormat (" yyyy-MM-dd hh: mm: ss.S "). Parse (" 2013-12-14 10: 00: 00.0 ")' Результат : Сб Дек 14 10:00:00 EET 2013 – Archer

1

Я попробовал тот же код, проблема была в формате даты, вы должны использовать HH вместо чч

<fmt:parseDate value="${row.date}" type="date" pattern="yyyy-MM-dd HH:mm:ss.S" var="formatedDate"/> 
<td class="dataField"><fmt:formatDate value="${formatedDate}" type="date" pattern="MM/dd/yy hh:mm:ss a"/></td> 
Смежные вопросы