Springboot2中如何进行jackson Java8日期格式化处理
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章将为大家详细讲解有关Springboot2中如何进行jackson Java8日期格式化处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。im
千家信息网最后更新 2025年01月24日Springboot2中如何进行jackson Java8日期格式化处理
这篇文章将为大家详细讲解有关Springboot2中如何进行jackson Java8日期格式化处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.databind.*;import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;import org.apache.commons.lang3.StringUtils;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.core.convert.converter.Converter;import org.springframework.lang.NonNull;import java.io.IOException;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.format.DateTimeFormatter;import java.util.TimeZone;/** * jackson2 日期序列化和反序列化处理 * */@Configurationpublic class DateConverterConfig { private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss"); /** * jackson2 json序列化 null字段输出为空串 * * @return * @author zhaoyang10 */ @Bean @Primary //@ConditionalOnMissingBean(ObjectMapper.class) public ObjectMapper serializingObjectMapper() { ObjectMapper objectMapper = new ObjectMapper(); JavaTimeModule javaTimeModule = new JavaTimeModule(); //不再做统一处理 Springcloud2 fegin 会报日期格式化错误 格式化的日期字段直接加@JsonFormat 注解处理 //序列化日期格式 //javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer()); //javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer()); //javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer()); //反序列化日期格式 //javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer()); //javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer()); //javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer()); objectMapper.registerModule(javaTimeModule); objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); objectMapper.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); return objectMapper; } /** * 日期序列化 */ public class LocalDateTimeSerializer extends JsonSerializer{ @Override public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { gen.writeString(value.format(DATETIME_FORMATTER)); } } /** * 日期反序列化 */ public class LocalDateTimeDeserializer extends JsonDeserializer { @Override public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { return LocalDateTime.parse(p.getValueAsString(), DATETIME_FORMATTER); } } /** * 日期序列化 */ public class LocalDateSerializer extends JsonSerializer { @Override public void serialize(LocalDate value, JsonGenerator gen, SerializerProvider serializers) throws IOException { gen.writeString(value.format(DATE_FORMATTER)); } } /** * 日期反序列化 */ public class LocalDateDeserializer extends JsonDeserializer { @Override public LocalDate deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { return LocalDate.parse(p.getValueAsString(), DATE_FORMATTER); } } /** * 日期序列化 */ public class LocalTimeSerializer extends JsonSerializer { @Override public void serialize(LocalTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { gen.writeString(value.format(TIME_FORMATTER)); } } /** * 日期反序列化 */ public class LocalTimeDeserializer extends JsonDeserializer { @Override public LocalTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { return LocalTime.parse(p.getValueAsString(), TIME_FORMATTER); } } /** * 接收前端入参日期的转换处理 * * @return */ @Bean public Converter LocalDateTimeConvert() { return new Converter () { @Override public LocalDateTime convert(@NonNull String source) { LocalDateTime date = null; if (StringUtils.isNotBlank(source)) { date = LocalDateTime.parse(source, DATETIME_FORMATTER); } return date; } }; } @Bean public Converter LocalDateConvert() { return new Converter () { @Override public LocalDate convert(@NonNull String source) { LocalDate date = null; if (StringUtils.isNotBlank(source)) { date = LocalDate.parse(source, DATE_FORMATTER); } return date; } }; } @Bean public Converter LocalTimeConvert() { return new Converter () { @Override public LocalTime convert(@NonNull String source) { LocalTime time = null; if (StringUtils.isNotBlank(source)) { time = LocalTime.parse(source, TIME_FORMATTER); } return time; } }; }}
关于Springboot2中如何进行jackson Java8日期格式化处理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
日期
序列
格式
处理
内容
字段
文章
更多
知识
篇文章
不错
前端
注解
空串
质量
错误
会报
参考
帮助
有关
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阿里企业服务器产品发布
大话西游手游百度服务器
暨南大学网络安全是哪个学院
网络安全事件 种类
软件开发的风险分析与控制
用win10做服务器系统可以吗
软件开发mac配置怎么选
浙江正规软件开发诚信推荐
网络技术工程服务是干什么的
武冈计算机网络技术哪里好
数据库多出一行怎么办
网络安全模型的顺序是
网络安全服务业
现在做网络安全如何
包头软件开发服务价格
php打开网页数据库发生错误
带你深度了解agc云数据库
软件开发如何做线上营销
永劫无间一共几个服务器
网络技术公司创业项目
8550u写编程数据库
上海知互互联网科技
www服务器配置与管理
綦江区网络安全审计系统咨询费用
上云服务器就安全了吗
汕尾电商系统软件开发
索尼新机fcc数据库
配置管理samba服务器
率土之滨小米和网易服务器相通吗
mysql将数导入数据库