@JsonFormat 注解的使用

SpringBoot 中的 @JsonFormat 注解

1. 引言

在前后端交互过程当中,往往需要后端返回前端所需要的日期类型数据,所以在将数据返回给前端时,可能会需要对日期类型进行格式化;
为更便捷的返回需要的数据,可以用 @JsonFormat 注解,其作用就是把DATE类型的数据转化成为我们想要的格式。

2. 简介

@JsonFormat 是Jackson中定义的一个注解,可以在数据返回前端时进行格式化;

例如前端需要的字符串格式的日期:“2023年10月31日 18时22分22秒”,则需要如下配置:

@JsonFormat(pattern = “yyyy年MM月dd日 HH时mm分ss秒”)
private Date createTime;

解析后存入DB中的依然为:2022-10-31 18:22:22,而在查询时返回的数据就会被格式化为:“2023年10月31日 18时22分22秒”

注意只有在将实体返回JSON格式数据时才会转换格式,其他时候日期格式不会被转换!

3. 使用

①引入依赖

@JsonFormat 注解不是SPRING自带的注解,而是Jackson的注解,所以需要在Maven中导入jackson相关的依赖包;

情况一:非SpringBoot项目:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.6</version>
</dependency>

情况二:SpringBoot项目:
spring-boot-start-web下已经包了Jackson的相关依赖,不需要再添加依赖!

②添加注解

在实体类中的属性上面使用 @JsonFormat 注解;

情况一:时间类型为 LocalTime 或 LocalDataTime:
只需要在属性上方定义时间类型即可;

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalTime createTime;

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;

情况二:时间类型 Data:
在使用 Data 类型时,由于Jaskson格式化时是按照国际标准时间GMT的,而国内是CST时区,两者相差8h,所以需要手动指定时区;

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

参考:
https://blog.csdn.net/goodjava2007/article/details/126028371
https://www.cnblogs.com/Marydon20170307/p/17750947.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值