Springboot返回给前端的日期变成时间戳问题处理
最近学习Springboot+Mybatis-puls整合,遇到一个问题,数据库存储的DATETIME类型字段返回给前端是以时间戳返回,需要格式化为指定格式如yyyy-MM-dd H:mm:ss格式
·
前言
最近学习Springboot+Mybatis-puls整合,遇到一个问题,数据库存储的DATETIME类型字段返回给前端是以时间戳返回,需要格式化为指定格式如yyyy-MM-dd HH:mm:ss
格式
问题描述
首先创建了controller中的一个方法,根据前端传入的当前页码page
,分页大小pageSize
返回给前端分页数据,用了Mybatis-plus提供的方法:IService.page
,R是自定义的通用返回结果类,后端响应的数据最终都会封装成此对象
@GetMapping("/page")
public R page(Integer page,Integer pageSize){
Page<CategoryEntity> categoryEntityPage =categoryService.page(new Page<>(page, pageSize),new QueryWrapper<CategoryEntity>().orderByAsc("sort"));
return R.ok(categoryEntityPage);
}
数据库关于时间的字段类型是DATETIME的
返回给前端的JSON数据中,关于时间的字段:createTime
、updateTime
都是以原格式返回时间戳
{
"code": 1,
"data": {
"records": [
{
"id": 1397844263642378242,
"type": 1,
"sort": 1,
"createTime": 1622078218000,
"updateTime": 1626351923000,
"createUser": 1,
"updateUser": 1
},
{
"id": 1397844303408574465,
"type": 1,
"sort": 2,
"createTime": 1622078227000,
"updateTime": 1622615242000,
"createUser": 1,
"updateUser": 1
}
]
}
}
解决方案
在对应的Entity类中,给对应属性添加@JsonFormat
注解
@JsonFormat
注解用于将Date日期格式化为指定格式的字符串。由于在序列化时间时是按照国际标准时间GMT进行格式化的,最后接受到的数据会早8个小时,所以应该添加timezone = "GMT+8"
属性将时区设置为于国内相同的CST时区,并设置当前时区为国区:locale = "zh"
,如果不设置,locale
默认会调用本机的时区。
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
private Date createTime;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
private Date updateTime;
更多推荐
已为社区贡献1条内容
所有评论(0)