In my Spring Boot 2 app.
My model:
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Entity
public class Category {
@Id
@GeneratedValue
private int id;
@NotNull
private String name;
private String description;
@NotNull
@DateTimeFormat(pattern = "dd.MM.yyyy HH:mm:ss")
private Date created;
@DateTimeFormat(pattern = "dd.MM.yyyy HH:mm:ss")
private Date updated;
here template:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title th:text="${appName}">Category template title</title>
<link th:href="@{/public/style.css}" rel="stylesheet"/>
<meta charset="UTF-8"/>
</head>
<body>
<div class="container entity_list">
<h2>Categories</h2>
<br/>
<table>
<tr>
<th width="80">ID</th>
<th width="120">Name</th>
<th width="200">Created At</th>
<th width="200">Updated At</th>
<th width="60"></th>
<th width="60"></th>
</tr>
<th:block th:each="category : ${categoryList}">
<tr>
<td th:text="${category.id}"></td>
<td th:text="${category.name}"></td>
<td th:text="${category.created}"></td>
<td th:text="${category.updated}"></td>
<td><a th:href="@{/category/edit/{id}(id=${category.id})}">Edit</a></td>
<td><a th:href="@{/category/delete/{id}(id=${category.id})}">Delete</a></td>
</tr>
</th:block>
</table>
</div>
</body>
</html>
and here generate html:
<!DOCTYPE html>
<html>
<head>
<title></title>
<link href="/public/style.css" rel="stylesheet"/>
<meta charset="UTF-8"/>
</head>
<body>
<div class="container entity_list">
<h2>Categories</h2>
<br/>
<table>
<tr>
<th width="80">ID</th>
<th width="120">Name</th>
<th width="200">Created At</th>
<th width="200">Updated At</th>
<th width="60"></th>
<th width="60"></th>
</tr>
<tr>
<td>1</td>
<td>Toys</td>
<td>2020-01-08 14:44:30.035</td>
<td></td>
<td><a href="/category/edit/1">Edit</a></td>
<td><a href="/category/delete/1">Delete</a></td>
</tr>
<tr>
<td>2</td>
<td>Electronics</td>
<td>2020-01-08 14:44:30.136</td>
<td></td>
<td><a href="/category/edit/2">Edit</a></td>
<td><a href="/category/delete/2">Delete</a></td>
</tr>
<tr>
<td>3</td>
<td>Supermarket</td>
<td>2020-01-08 14:44:30.138</td>
<td></td>
<td><a href="/category/edit/3">Edit</a></td>
<td><a href="/category/delete/3">Delete</a></td>
</tr>
</table>
</div>
</body>
</html>
As you can see the dates is not in format dd.MM.yyyy HH:mm:ss . Why?
Using double-brace expressions should apply your @DateTimeFormat
. (This happens automatically for form fields.)
<td th:text="${{category.created}}"></td>
<td th:text="${{category.updated}}"></td>