• LocalDateTime反序列化,LocalDateTime格式化


    • 使用mybatis-plus的时候出现了LocalDateTime类(jdk8 中新出现的类
    • 那么我在反序列化的时候出了问题。

    我在springboot 2.1.3 中使用以下类结局问题)

    • 用到了下面这个类解决了所有的问题。包括前端传值过来也能直接接受字符串
    • 百度上面也猜了许许多多的坑 最终换了一个spring boot的版本 然后用以下的代码配置完美解决了问题
    
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
    import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
    import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
    import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.format.Formatter;
    
    import java.text.ParseException;
    import java.time.LocalDate;
    import java.time.LocalDateTime;
    import java.time.LocalTime;
    import java.time.format.DateTimeFormatter;
    import java.util.Locale;
    
    /**
     * 接收时间配置bean
     */
    @Configuration
    public class LocalDateTimeFormatConfig {
    
        @Bean(name = "mapperObject")
        public ObjectMapper getObjectMapper() {
            ObjectMapper om = new ObjectMapper();
            JavaTimeModule javaTimeModule = new JavaTimeModule();
            javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
            om.registerModule(javaTimeModule);
            return om;
        }
    
        @Bean
        public Formatter<LocalDate> localDateFormatter() {
            return new Formatter<LocalDate>() {
                @Override
                public String print(LocalDate object, Locale locale) {
                    return object.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
                }
    
                @Override
                public LocalDate parse(String text, Locale locale) throws ParseException {
                    return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
                }
            };
        }
    
        @Bean
        public Formatter<LocalDateTime> localDateTimeFormatter() {
            return new Formatter<LocalDateTime>() {
                @Override
                public String print(LocalDateTime object, Locale locale) {
                    return object.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
                }
    
                @Override
                public LocalDateTime parse(String text, Locale locale) throws ParseException {
                    return LocalDateTime.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
                }
            };
        }
    
        @Bean
        public Formatter<LocalTime> localTimeFormatter() {
            return new Formatter<LocalTime>() {
                @Override
                public String print(LocalTime object, Locale locale) {
                    return object.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
                }
    
                @Override
                public LocalTime parse(String text, Locale locale) throws ParseException {
                    return LocalTime.parse(text, DateTimeFormatter.ofPattern("HH:mm:ss"));
                }
            };
        }
     
    }
    
  • 相关阅读:
    阿里的GCIH技术
    java栈
    hotsport jvm后台线程包括哪些
    java运行时数据区
    java双亲委派
    获取类加载器方式
    用户自定义类加载器(java防止反编译)
    JSP-07-使用JavaBean封装数据
    JSP-06-使用JDBC操作数据库
    InstallShield 下载安装
  • 原文地址:https://www.cnblogs.com/rolandlee/p/10513025.html
Copyright © 2020-2023  润新知