Java日期格式化注解【@DateTimeFormat和@JsonFormat】✔

@DateTimeFormat//前端传来的日期格式化
@JsonFormat//后端传给前端的日期格式化

一、理解

  • @DateTimeFormat:这个注解主要用于处理从前端传递到后端的日期和时间数据。当你的 Spring 应用程序接收到一个 HTTP 请求,并且请求参数包含日期和时间数据时,@DateTimeFormat 可以帮助你将这些数据解析为 Java DateLocalDateTime 对象。

  • @JsonFormat:这个注解主要用于处理从后端传递到前端的日期和时间数据。当你的应用程序需要将 DateLocalDateTime 对象序列化为 JSON 格式以发送到前端时,@JsonFormat 可以帮助你控制日期和时间的格式。

这两个注解通常一起使用,以确保在前后端之间传递日期和时间数据时,数据的格式始终保持一致。

二、参数

当然可以。这两个注解都有一些可配置的参数,我会分别列出它们:

  1. @JsonFormat 的参数:

    • pattern:定义日期/时间的格式,例如 “yyyy-MM-dd HH:mm:ss”。
    • shape:定义值的形状(例如,是否应视为数组)。默认值为 Shape.ANY
    • locale:定义用于格式化的区域设置。默认值为空,表示使用默认的 Locale
    • timezone:定义用于格式化的时区。默认值为空,表示使用默认的 TimeZone
    • lenient:定义解析是否宽松。默认值为 OptBoolean.DEFAULT
  2. @DateTimeFormat 的参数:

    • iso:定义 ISO 格式,例如 ISO.DATE
    • pattern:定义日期/时间的格式,例如 “yyyy-MM-dd HH:mm:ss”。
    • style:定义样式模式,例如 “SS”。

这些参数允许你对日期和时间的格式进行详细的控制。例如,你可以使用 pattern 参数来定义自己的格式,或者使用 iso 参数来使用预定义的 ISO 格式。你也可以通过 localetimezone 参数来控制区域设置和时区。

三、示例

  1. 使用 @JsonFormat

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

    在这个例子中,Date 对象会被序列化为 “yyyy-MM-dd HH:mm:ss” 格式的字符串,并且使用 GMT+8 的时区。

  2. 使用 @DateTimeFormat

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date;
    

    在这个例子中,字符串会被解析为 Date 对象,字符串的格式应该是 “yyyy-MM-dd HH:mm:ss”。

注意,@DateTimeFormat 注解没有直接的 timezone 参数,如果你需要解析的日期字符串包含时区信息,那么你需要在 pattern 中包含时区,例如 “yyyy-MM-dd HH:mm:ss Z”。如果你需要处理的日期字符串不包含时区信息,那么它将被解析为系统默认的时区。如果你的系统默认时区不是 GMT+8,你可能需要在代码中手动处理时区问题。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值