From 7315f02ce602587ba3628c746915b4de1585d646 Mon Sep 17 00:00:00 2001 From: guo <1716967236@qq.com> Date: Sun, 22 Sep 2024 08:11:22 +0800 Subject: [PATCH] =?UTF-8?q?[xingyu.guo]=20feat:=20=E6=8C=87=E5=AE=9Ajackso?= =?UTF-8?q?n=E5=AF=B9LocalDateTime=E7=9A=84=E5=BA=8F=E5=88=97=E5=8C=96?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/JacksonConfig.java | 24 ++++++++++++++ .../serializer/LocalDateTimeSerializer.java | 31 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/main/java/com/guo/learningprogresstracker/config/JacksonConfig.java create mode 100644 src/main/java/com/guo/learningprogresstracker/config/serializer/LocalDateTimeSerializer.java diff --git a/src/main/java/com/guo/learningprogresstracker/config/JacksonConfig.java b/src/main/java/com/guo/learningprogresstracker/config/JacksonConfig.java new file mode 100644 index 0000000..c1c0b4b --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/config/JacksonConfig.java @@ -0,0 +1,24 @@ +package com.guo.learningprogresstracker.config; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.guo.learningprogresstracker.config.serializer.LocalDateTimeSerializer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.time.LocalDateTime; + +/** + * @author guo + */ +@Configuration +public class JacksonConfig { + @Bean + public ObjectMapper objectMapper() { + ObjectMapper mapper = new ObjectMapper(); + SimpleModule module = new SimpleModule(); + module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer()); + mapper.registerModule(module); + return mapper; + } +} diff --git a/src/main/java/com/guo/learningprogresstracker/config/serializer/LocalDateTimeSerializer.java b/src/main/java/com/guo/learningprogresstracker/config/serializer/LocalDateTimeSerializer.java new file mode 100644 index 0000000..9ad47b0 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/config/serializer/LocalDateTimeSerializer.java @@ -0,0 +1,31 @@ +package com.guo.learningprogresstracker.config.serializer; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class LocalDateTimeSerializer extends StdSerializer { + + // 定义你希望使用的日期时间格式 + private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");; + + public LocalDateTimeSerializer() { + super(LocalDateTime.class); + } + + @Override + public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider provider) throws IOException { + if (value == null) { + gen.writeNull(); + } else { + // 格式化LocalDateTime为字符串 + String formattedDate = value.format(formatter); + // 将格式化后的字符串写入JSON流作为一个值 + gen.writeString(formattedDate); + } + } +}