注解 @JsonFormat 与 @DateTimeFormat 的使用

文章介绍了如何使用Jackson的@JsonFormat注解在前端时间组件与后端服务器间进行日期格式转换,包括不同场景下的处理方法,以及timezone设置的重要性。

@JsonFormat (双端互传)

com.fasterxml.jackson.annotation.JsonFormat;
将字符串的时间转换成Date类型。此注解只能用于form表单请求和get请求

public class Sys{
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
}

@JsonFormat 默认的时区是 Greenwich Time,格林威治时间,而我们是在东八区。传递时间比数据库中的时间少八个小时。故需加上timezone="GMT+8

@DateTimeFormat (前端传后端日期格式转化)

将字符串的时间转换成Date类型。此注解只能用于json请求。在Controller层入参处需要用@RequestBody

情况一 前端是时间组件 <el-date-picker 或其他

时间组件默认传递格式:2023-01-01 01:01:01 则后端不需要加 @DateTimeFormat 注释

情况二 前端未设置组件

时间格式是默认的   2023-07-01T00:00:00.000+0800  
则返回后端会报错   JSON parse error: Cannot deserialize value of type

建议默认装上@JsonFormat

参考 @JsonFormat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值