Springboot采用FastJson2作为MessageConverter时,配置的全局日期类型序列化转换BUG

核心异常内容

Pattern letter count must be 2: V at java.base/java.time.format.DateTimeFormatterBuilder.parsePatter

背景

我的Springboot工程使用FastJson2代替jackson

在实现WebMvcConfigurer的configureMessageConverters方法时,修改FastJSON2为MessageConverter。为了方便,我全局配置了日期格式转换规则,这样我无需在各个ResponseVO的日期类型的属性上写@JSONField(format = "yyyy-MM-dd HH:mm:ss")了。

但是直到有一天报错了。

BUG原因和解决办法

原因

我在设置格式的时候代码如下,我写了cn.hutool.core.date.DatePattern.NORM_DATETIME_FORMATTER.toString(),我以为它的值是"yyyy-MM-dd HH:mm:ss"

java 复制代码
 fastJsonConfig.setDateFormat(DatePattern.NORM_DATETIME_FORMATTER.toString());

但实际上它的值是"Value(YearOfEra,4,19,EXCEEDS_PAD)'-'Value(MonthOfYear,2)'-'Value(DayOfMonth,2)' 'Value(HourOfDay,2)':'Value(MinuteOfHour,2)':'Value(SecondOfMinute,2)"

解决办法

应该用DatePattern.NORM_DATETIME_PATTERN,它才是字符串"yyyy-MM-dd HH:mm:ss"。

总结

果然BUG大部分情况都是自己蠢造成的。

相关推荐
忽而今夏&_&12 小时前
python 刷题最基础的一些
开发语言·python
967712 小时前
springMVC请求处理全过程
java
前端郭德纲12 小时前
JavaScript 原型相关属性详解
开发语言·javascript·原型模式
gelald12 小时前
Spring - 事务管理
java·后端·spring
橘子编程12 小时前
编译原理:从理论到实战全解析
java·linux·python·ubuntu
xuhaoyu_cpp_java12 小时前
Maven学习(一)
java·经验分享·笔记·学习·maven
sibylyue13 小时前
Nginx\Tomcat\Jetty\Netty
java·nginx·http
于先生吖13 小时前
基于 SpringBoot 架构,高性能 JAVA 动漫短剧系统源码
java·开发语言·spring boot
无限进步_13 小时前
【C++&string】寻找字符串中第一个唯一字符:两种经典解法详解
开发语言·c++·git·算法·github·哈希算法·visual studio
斌味代码13 小时前
SpringBoot 3 实战:虚拟线程、全局异常处理与 JWT 鉴权完整方案
java·spring boot·后端