【无标题】

Get请求参数@RequestBody PageReqVo pageReqVo 有个字段是createTime 为LocalDateTime[],通过注解

@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 

时间变成1970-01-01T08:00 

  1. @RequestBody 与 @DateTimeFormat 的不兼容性
    @RequestBody 通常用于处理 HTTP 请求体中的数据,这些数据通常以 JSON 或 XML 等格式发送。@DateTimeFormat 注解是专门用于将 String 类型的请求参数(如通过 URL 的查询参数或表单数据发送的)转换为 Java 的日期/时间类型(如 LocalDateTime)。然而,它不适用于 @RequestBody 注解的情况,因为 @RequestBody 已经指示 Spring 使用 HTTP 消息转换器(如 Jackson)来解析 JSON 数据为 Java 对象。

  2. LocalDateTime[] 的处理
    当你尝试通过 @RequestBody 将 JSON 数组(如 ["2023-01-01T12:00:00", "2023-01-02T13:00:00"])转换为 LocalDateTime[] 时,你依赖的是你的 JSON 库(如 Jackson)的默认行为或你可能已配置的自定义序列化/反序列化器。@DateTimeFormat 在这种情况下不会被触发。

  3. 时间变为 1970-01-01T08:00
    这个具体的时间(1970-01-01T08:00)很可能是由于解析错误或默认值引起的。如果 LocalDateTime[] 数组中的某个元素解析失败(比如格式不正确),那么相应的 LocalDateTime 实例可能会保持为默认值(通常是 Java 8 日期时间类的原点,即 Unix 纪元时间,即 1970-01-01T00:00:00Z)。但是,由于时区问题(如果你的环境默认时区为东八区),显示时可能会调整为 1970-01-01T08:00

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值