在Java开发中,尤其是Spring和Spring Boot项目中,日期时间类型(如Date
、LocalDateTime
等)的格式化问题经常困扰开发者。例如,前端传递的日期字符串如何转换为后端对象?后端返回的日期对象如何按指定格式序列化?这时候,@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