告别时间格式化烦恼!@JsonFormat注解让你的Java开发更高效

在日常开发中,后端经常需要返回时间数据给前端,但你是否遇到过这样的问题:

  • 前端想要”yyyy-MM-dd HH:mm:ss”格式,后端返回的却是时间戳
  • 时区不对,显示的时间总是差8小时
  • 每次都要手动格式化,代码重复且繁琐

今天我们要介绍的@JsonFormat注解,就是解决这些问题的利器!

什么是@JsonFormat注解?

@JsonFormat是Jackson库提供的注解,主要用于在序列化和反序列化过程中格式化日期时间字段。通过在实体类字段上添加这个注解,我们可以轻松控制日期时间的显示格式和时区。

基本用法详解

public class User {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    
    // getter和setter方法
}

主要参数说明:

1. pattern(必填)

定义日期时间格式,支持的各种格式符号:

  • yyyy:四位年份
  • MM:两位月份
  • dd:两位日期
  • HH:24小时制的小时
  • mm:分钟
  • ss:秒
  • SSS:毫秒

2. timezone(重要)

设置时区,避免时间差问题:

  • GMT+8:东八区(中国标准时间)
  • 建议始终明确指定时区

3. shape(可选)

定义序列化的形状,默认为Shape.ANY

实际应用示例

1. 基本日期格式化

@JsonFormat(pattern = "yyyy-MM-dd")
private Date birthday; // 输出:2023-10-15

2. 完整日期时间格式

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; // 输出:2023-10-15 14:30:25

3. 带毫秒的时间格式







次阅读

扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论