MySQL的timestamp字段对应的JavaBean属性,我们可以使用java.sql.Timestamp或者java.util.Date来接收并封装。
假定,MySQL查询语句执行结果如下:
其中,started_at和aborted_at字段定义的数据类型都是datetime。
针对以上查询结果,我们如何针对datetime时间类型进行格式化定制呢?
下面,我们分情况展开:
1)我们使用Date接收started_at,Timestamp接收aborted_at:
那么,得到最终响应结果如下:
2)在方式1基础之上,我们使用 @JsonFormat(pattern = "yyyy-MM-dd HH:mm") 进行格式定制:
最终的响应结果如下:
我们可以看到,的确按照我们设定的 pattern = "yyyy-MM-dd HH:mm" 完成了格式定制。但如果我们参照 图1 MySQL原始查询记录,我们会发现一个隐藏的问题:两个field的时间都和MySQL原始查询记录的时间有8个小时的偏差!这个情况又该怎么处理呢?接下来,我们看第3种方案!
3)在方式2基础之上,我们给@JsonFormat额外添加一个属性,详见下图:
最终的响应结果如下:
@JsonFormat 定制时间格式方案讨论完毕!
timezone属性可以设定指定的时区,我们设定的是东八区!
特别提醒,引入Jackson依赖:
- Gradle:
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-corecompile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.8'
- Maven:
com.fasterxml.jackson.corejackson-core2.9.8
期待您的点赞和关注!