这是我的数据模型。我想从这里使用日期。
我在我的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 timedate: 1.476787930289E9
但是在我发布的图片中,你看到了。蒂姆不是那个。
这是在域
public String getCreatedAtString() {
return createdAtString;
}
public TaskComment setCreatedAtString(String createdAtString) {
this.createdAtString = createdAtString;
return this;
}
private ZonedDateTime createdAt = ZonedDateTime.now();
为什么我会在日期格式中看到开头的图片?
答案 0 :(得分:6)
使用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')}