Browse Source

统一格式化日期

tianyun 3 years ago
parent
commit
4d53edff48

+ 46 - 0
book-server/src/main/java/com/book/server/config/DateFormatConfig.java

@@ -0,0 +1,46 @@
+package com.book.server.config;
+
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+import org.springframework.boot.jackson.JsonComponent;
+import org.springframework.context.annotation.Bean;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.time.format.DateTimeFormatter;
+import java.util.TimeZone;
+
+/**
+ * 日期格式配置
+ *
+ * @date 2021/10/21
+ */
+@JsonComponent
+public class DateFormatConfig {
+
+    @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
+    private String pattern;
+
+
+    @Bean
+    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilder() {
+
+        return builder -> {
+            TimeZone tz = TimeZone.getTimeZone("GMT+8");
+            DateFormat df = new SimpleDateFormat(pattern);
+            df.setTimeZone(tz);
+            builder.failOnEmptyBeans(false)
+                    .failOnUnknownProperties(false)
+                    .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
+                    .dateFormat(df);
+        };
+    }
+
+
+    @Bean
+    public LocalDateTimeSerializer localDateTimeDeserializer() {
+        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
+    }
+}