详解@JsonFormat和@DateTimeFormat注解:处理日期格式化的利器

时间:2025-04-16 07:06:39

在Java开发中,尤其是Spring和Spring Boot项目中,日期时间类型(如DateLocalDateTime等)的格式化问题经常困扰开发者。例如,前端传递的日期字符串如何转换为后端对象?后端返回的日期对象如何按指定格式序列化?这时候,@JsonFormat@DateTimeFormat两个注解可以轻松解决这些问题。本文将通过代码示例详细讲解它们的用法和区别。

一、@DateTimeFormat:处理请求参数的日期格式化

1. 作用

@DateTimeFormat是Spring框架提供的注解,用于将请求参数中的日期字符串转换为Java日期对象。常用于@RequestParam或实体类的字段上,处理表单提交或GET请求中的日期参数。

2. 主要属性

  • pattern:定义日期字符串的格式(如yyyy-MM-dd HH:mm:ss)。

  • iso:指定ISO标准日期格式(如ISO.DATE_TIME)。

  • locale:指定地区化配置(默认为系统默认地区)。

3. 示例代码

public class Order {
    // 将前端传递的字符串(如"2023-10-01 12:30")转为Loc