前言
我们在开发spring boot restful接口的时候,通常定义请求对象和返回对象,里面可能会有各种类型的参数,如果需要传递或接收date类型的参数,发现调用的时候会报参数类型不匹配的错误,下面看如何解决
1、@JsonFormat注解
在请求参数定义date类型的参数上添加@JsonFormat
注解,并指定时区timezone="GMT+8"
,如果不配置时区,你会发现接收到参数会比实际参数少8小时,因为@JsonFormat
默认时区是GMT,即格林威治时间,比中国所在地区东八区少8小时。
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date publishTime;
同样需要返回date类型数据时,可以直接在返回象上也加上@JsonFormat注解
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
这样定义后,我们就不用在string和date类型中手动转换了