zoukankan      html  css  js  c++  java
  • springboot LocalDateTime 时间相关处理一个配置类就搞定了

    spring的版本是2.4.1,Date,LocalDate,LocalDateTime相关表单,json一个配置类就可以全局设置好。

    
    
    package com.zhqn.demo4.config;

    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
    import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
    import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
    import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
    import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.convert.converter.Converter;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.time.LocalDate;
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    import java.util.Date;

    /**
    * FileName: ConverterConfiguration
    * Date: 2021/4/28 19:44
    * Description: 转换类配置
    *
    * @author zhouquan3
    */
    @Configuration
    public class DateTimeConfiguration {

    public final static String NORMAL_DATE_PATTERN = "yyyy-MM-dd";

    public final static String NORMAL_DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

    /**
    * string to date
    * @return date
    */
    @Bean
    public DateConverter dateConverter () {
    return new DateConverter();
    }

    /**
    * string to localDate
    * @return localDate
    */
    @Bean
    public LocalDateConverter localDateConverter () {
    return new LocalDateConverter();
    }

    /**
    * string to LocalDateTime
    * @return LocalDateTime
    */
    @Bean
    public LocalDateTimeConverter localDateTimeConverter () {
    return new LocalDateTimeConverter();
    }

    @Bean
    public ObjectMapper initObjectMapper(){
    ObjectMapper objectMapper=new ObjectMapper();

    JavaTimeModule javaTimeModule=new JavaTimeModule();
    javaTimeModule.addDeserializer(LocalDateTime.class,new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(NORMAL_DATE_TIME_PATTERN)));
    javaTimeModule.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(NORMAL_DATE_TIME_PATTERN)));
    javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(NORMAL_DATE_PATTERN)));
    javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(NORMAL_DATE_PATTERN)));
    objectMapper.setDateFormat(new SimpleDateFormat(NORMAL_DATE_TIME_PATTERN));
    objectMapper.registerModule(javaTimeModule);
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    return objectMapper;
    }



    static class DateConverter implements Converter<String, Date> {

    @Override
    public Date convert(String source) {
    String pattern ;
    if (source.length() <= NORMAL_DATE_PATTERN.length()) {
    pattern = NORMAL_DATE_PATTERN;
    }else {
    pattern = NORMAL_DATE_TIME_PATTERN;
    }
    SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
    try {
    return dateFormat.parse(source);
    } catch (ParseException e) {
    throw new RuntimeException(source + " to date error!");
    }
    }
    }

    static class LocalDateConverter implements Converter<String, LocalDate> {

    @Override
    public LocalDate convert(String source) {
    return LocalDate.parse(source, DateTimeFormatter.ofPattern(NORMAL_DATE_PATTERN));
    }
    }

    static class LocalDateTimeConverter implements Converter<String, LocalDateTime> {

    @Override
    public LocalDateTime convert(String source) {
    return LocalDateTime.parse(source, DateTimeFormatter.ofPattern(NORMAL_DATE_TIME_PATTERN));
    }
    }
    }



     
  • 相关阅读:
    深入了解C语言
    $_SERVER变量结构
    整理了一份招PHP高级工程师的面试题
    深入探究VC —— 编译器cl.exe(2)【转】http://blog.csdn.net/wangningyu/article/details/4837419
    vs2010 工程设置,调试中的目录问题【转】http://www.cnblogs.com/mlj318/archive/2011/10/09/2203510.html
    深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452
    移植ffmpeg到VC环境心得 【转】
    深入了解VC++编译器【转】
    VC2010中"Include Directories" 和 "Additional Include Directories"的区别
    深入探究VC —— 资源编译器rc.exe(3)【转】http://blog.csdn.net/wangningyu/article/details/4844687
  • 原文地址:https://www.cnblogs.com/zhouquan-1992-04-06/p/14716034.html
Copyright © 2011-2022 走看看