LocalDateTimeConfig.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.ydtech.config;
  2. import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
  3. import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
  4. import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import java.time.LocalDateTime;
  8. import java.time.format.DateTimeFormatter;
  9. /**
  10. * @author wenks
  11. * @version 0.0.2
  12. * @description LocalDateTime 全局配置
  13. * @date 2023/5/17 17:50
  14. */
  15. @Configuration
  16. public class LocalDateTimeConfig {
  17. private static final DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  18. /**
  19. * 序列化内容
  20. * LocalDateTime -> String
  21. * 服务端返回给客户端内容
  22. */
  23. @Bean
  24. public LocalDateTimeSerializer localDateTimeSerializer() {
  25. return new LocalDateTimeSerializer(dateTimeFormatter);
  26. }
  27. /*
  28. * 反序列化内容
  29. * String -> LocalDateTime
  30. * 客户端传入服务端数据
  31. * */
  32. @Bean
  33. public LocalDateTimeDeserializer localDateTimeDeserializer() {
  34. return new LocalDateTimeDeserializer(dateTimeFormatter);
  35. }
  36. @Bean
  37. public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
  38. return builder -> {
  39. builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
  40. builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
  41. };
  42. }
  43. }