背景
为了让时间数据可以在前端可视化显示,我在写实体类时,对date类型的数据加了“@JsonFormat”注解
@JsonFormat (timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private Date updataTime;//更新时间
@JsonFormat (timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;//创建时间
并进行了测试,一切正常,如图。
但是在我实际使用时,发现即使给date类型数据加了@JsonFormat注解,但是在前端页面显示的还是默认格式,而不是我想要的可视化格式,如图
从网上找了好几个解决办法,都是让加注解,但是我确实已经加了…
解决
我怀疑是我前端页面引用的数据变量有问题,就查看了一下相关的代码
<tr th:each="datas:${allDatas.list}">
<th scope="row" th:text="${datasStat.count}-${pageSize}+${pageNum}*${pageSize}"></th>
<td th:text="${datas.noticefyTitle}"></td>
<td th:text="${datas.userName}"></td>
<!--相关代码-->
<td th:text="${datas.createTime}"></td>
<td>
<a href="javascript:void(0)" onclick="seeIt(this)">查看</a>
<a href="javascript:void(0)" onclick="editIt(this)">编辑</a>
</td>
</tr>
问题就处在th:text上,它没有对date类型数据按我想要的格式化显示,而是显示了从SQL读取出来的原始数据。
所以得让其格式化,才能实现可视化。具体代码修改如下:
// 数据名称 想显示的具体格式
th:text="${#dates.format(datas.createTime,'yyyy-MM-dd HH:mm:ss')}"