Jackson时间格式化输⼊输出
前提:
在使⽤SpringMVC,使⽤@RestController或者@ResponseBody时,springMVC会将返回的数据转换为JSON数据,遇到Timestamp 时,就会默认转换为毫秒数,不⽅便阅读。接受数据时,也只能接受毫秒数或者“yyyy-MM-dd”格式的数据,不能接收“yyyy-MM-dd HH:mm:ss”格式的数据,但是我们使⽤做多的格式还是“yyyy-MM-dd HH:mm:ss”,所以我们就要解决这个两个问题。
解决默认转换毫秒数为⾃定义格式:
⽅法⼀:
使⽤@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
在返回对象的getXXX⽅法上,出来的时间就是我们习惯的 "yyyy-MM-dd HH:mm:ss"格式的时间了,
注意:需要加timezone时区,不然就和我们的时间有8⼩时的出⼊
⽅法⼆:
使⽤@JsonSerialize(using = JsonDateSerializer.class)在返回对象的getXXX⽅法上。
其中JsonDateSerializer要继承JsonSerializer,并实现⽅法serialize(),如下:
public class JsonDateSerializer extends JsonSerializer<Date>{ @Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider providephpjson格式化输出
解决获取JSON数据时接收⾃定义的时间格式:
根据上⾯的解决⽅法,同理可以尝试,在setXXX ⽅法上⾯加上注解。
经过测试@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"),可以成功。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。