2016-10-04 3 views
21

Я новичок в Java/Spring/Thymeleaf, поэтому, пожалуйста, воздержитесь от моего нынешнего уровня понимания. Я просмотрел this similar question, но не смог решить мою проблему.Дата форматирования в Thymeleaf

Я пытаюсь получить упрощенную дату вместо формата длинных дат.

// DateTimeFormat annotation on the method that's calling the DB to get date. 
@DateTimeFormat(pattern="dd-MMM-YYYY") 
public Date getReleaseDate() { 
    return releaseDate; 
    } 



// HTML 
<table> 
<tr th:each="sprint : ${sprints}"> 
    <td th:text="${sprint.name}"></td> 
    <td th:text="${sprint.releaseDate}"></td> 
</tr> 

Выходной ток

sprint1 2016-10-04 14:10:42.183 

ответ

41

проверки Bean не имеет значения, вы должны использовать Thymeleaf форматирование:

<td th:text="${#dates.format(sprint.releaseDate, 'dd-MMM-yyyy')}"></td> 

Также убедитесь, что releaseDate свойство java.util.Date.

выход будет как: 04-Oct-2016

+5

Я просто оставлю это здесь: Если вы используя LocalDate или LocalDateTime, используйте «temporals» вместо «date» в Thymeleaf. –

11

Если вы хотите использовать преобразователи в го: атрибуты текста, вы должны использовать синтаксис двойной кронштейн.

<td th:text="${{sprint.releaseDate}}"></td> 

(Они автоматически применяются к й: атрибуты поля)

http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html#double-bracket-syntax

+0

. Есть ли способ настроить формат, который использует конвертер с двойной скобкой? –

+0

@DavidTroyer работает практически так, как обычно вы это делаете - вы можете использовать '@ DateTimeFormat' (как и вопрос), вы можете использовать класс' @ Configuration' для расширения 'WebMvcConfigurerAdapter' и переопределить addFormatters для добавления «Конвертер <Дата, Строка>» и т. д. – Metroids

0

вы должны использовать Thymeleaf форматированием миллисекунды

<td th:text="${#dates.format(new java.util.Date(transaction.documentDate), 'dd-MMM-yy')}"></td> 
Смежные вопросы