#thymeleaf
#thymeleaf
Вопрос:
Это моя модель данных. Я хочу использовать дату отсюда.
Я делаю это в своем html:
<table th:if="${!commentsInTask.empty}">
<tbody>
<tr th:each="Comments : ${commentsInTask}">
<tr th:each="comment : ${Comments}">
<td th:text="${comment.user}">user ...</td>
<td th:text="${comment.createdAt}">date ...</td>
</tr>
</tr>
</tbody>
</table>
но это приносит:
<table>
<tbody>
<td>JACK</td>
<td>1.476787930289E9</td>
</tr>
</tr>
</tbody>
</table>
Эта часть представляет собой временную дату unix:
1.476787930289E9
но на картинке в начале, которую я опубликовал, вы видели. Timme — это не так.
Это в домене
public String getCreatedAtString() {
return createdAtString;
}
public TaskComment setCreatedAtString(String createdAtString) {
this.createdAtString = createdAtString;
return this;
}
private ZonedDateTime createdAt = ZonedDateTime.now();
Почему я не могу видеть в формате даты, который на картинке в начале?
Ответ №1:
Используйте форматирование Thymeleaf:
<td th:text="${#dates.format(comment.createdAt, 'dd-MM-yyyy HH:mm:ss')}">date</td>
Вы получите выходные данные в следующем формате: 18-Oct-2016 14:44:05
.
#dates
: методы для java.util.Date
объектов: форматирование, извлечение компонентов и т. Д.
Чтобы преобразовать ваше createdAt
поле в java.util.Date
тип, используйте:
Date date = Date.from(java.time.ZonedDateTime.now().toInstant());
Или просто используйте java.util.Date
тип:
private Date createdAt = new Date();
для этого будет установлена cheatedAt
текущая дата.
Также вы можете добавить зависимость thymeleaf-extras-java8time в свой проект для работы с вашим ZonedDateTime
типом.
Этот модуль добавляет #temporals
объект, аналогичный #dates
или #calendars
в стандартном диалекте, позволяя форматировать и создавать временные объекты из шаблонов Thymeleaf:
Затем вы можете использовать ZoneDateTime
с указанным шаблоном:
${#temporals.format(temporal, 'dd/MM/yyyy HH:mm')}
Смотрите больше в Thymeleaf — модуле для совместимости с Java 8 Time API.
Комментарии:
1. 18/10/2016 13:51 что насчет этого?
2. Так и будет
dd/MM/YYYY HH:mm
. Вы можете использовать любой шаблон там, пожалуйста, посмотрите больше информации здесь: docs.oracle.com/javase/7/docs/api/java/text /…3. org.thymeleaf.исключения. Исключение TemplateProcessingException: исключение, оценивающее выражение SpringEL: «#dates.format(comment.createdAt, ‘дд / ММ / ГГГГ ЧЧ: мм’)» (task_comment_cta:33)
4. это потому, что тип
createdAt
естьZonedDateTime
. Я обновил ответ, проверьте его, пожалуйста.5. Существует также другой способ использования
java.time
типов в Thymeleaf. Но тогда вам нужно добавить еще одну зависимость к вашему проекту. Посмотрите на мой обновленный ответ.