网站建设7个基本流程,鄂州第一网官网,云服务器做视频网站,建设工程敎育那个网站JsonFormat的使用
目的 为了便于date类型字段的序列化和反序列化#xff0c;需要在数据结构的Date、Timestamp、DateTime类型的字段上用JsonFormat注解进行注解
使用 JsonFormat注解是一个时间格式化注解#xff0c;比如我们存储在mysql中的数据是date类型的#xff0c;当…JsonFormat的使用
目的 为了便于date类型字段的序列化和反序列化需要在数据结构的Date、Timestamp、DateTime类型的字段上用JsonFormat注解进行注解
使用 JsonFormat注解是一个时间格式化注解比如我们存储在mysql中的数据是date类型的当我们读取出来封装在实体类中的时候就会变成英文时间格式而不是yyyy-MM-dd HH:mm:ss这样的中文时间因此我们需要用到JsonFormat注解来格式化我们的时间。一般用于一个字段命名上面示例 /*** 生日*/JsonFormat(pattern Dates.Pattern.DATE)private Date birthday;
这里Dates.Pattern.DATE是枚举类型取值对应值可以自定义例如 /*** yyyy-MM-dd*/
String DATE yyyy-MM-dd;
要想使用此注解需要引入依赖
dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.9.2/version
/dependency
当然我们在spring boot框架开发中
我们的spring-boot-starter-web启动器已经整合了jackson-databind依赖
不需要再重复引入jackson-databind依赖 引入fasterxml maven jar包之后就可以在实体类属性上面使用JsonFormat注解了 要注意的是它只会在类似ResponseBody返回json数据的时候才会返回格式化的yyyy-MM-dd HH:mm:ss时间你直接使用System.out.println()输出的话仍然是类似“Fri Dec 01 21:05:20 CST 2017”这样的时间样式。
时区概述
GMTGreenwich Mean Time 格林尼治标准时间。这是以英国格林尼治天文台观测结果得出的时间这是英国格林尼治当地时间这个地方的当地时间过去被当成世界标准的时间。
UTUniversal Time 世界时。根据原子钟计算出来的时间。
UTCCoordinated Universal Time 协调世界时。因为地球自转越来越慢每年都会比前一年多出零点几秒每隔几年协调世界时组织都会给世界时1秒让基于原子钟的世界时和基于天文学人类感知的格林尼治标准时间相差不至于太大。并将得到的时间称为UTC这是现在使用的世界标准时间。
协调世界时不与任何地区位置相关也不代表此刻某地的时间所以在说明某地时间时要加上时区
也就是说GMT并不等于UTC而是等于UTC0只是格林尼治刚好在0时区上。
GMT UTC0
中国的默认时区
中国的默认时区是东八区 TimeZone设置时区
timezone: 默认是GMT中国需要GMT8
格林尼治时间GMT、世界协调时间UTC和中国时间的关系
中国时间(Asia/Shanghai) 格林尼治时间GMT 8 格林尼治时间GMT 世界协调时间UTC 0
时区问题
我们在格式化的时候要指定时区timezone 以中国时区为例代码如下
/**
* 生日
*/
JsonFormat(pattern yyyy-MM-dd, timezone GMT8)
private Date birthday;
实例
项目中我们的日期非常的难看而且存在时区问题
因为我们选择的日期是2月13号显示的却是2月12号 我们使用JsonFormat后就可以格式化我们的日期并且解决失去问题
JsonFormat(pattern yyyy-MM-dd, timezone GMT8)
private Date birthday; // 生日
结果