Springboot传输数据时日期格式化问题

 更新时间:2023年09月18日 15:55:08   作者:执久呀  
这篇文章主要介绍了Springboot传输数据时日期格式化问题,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

使用swagger测试数据时 

第一种在实体类属性值上加入

这种方式简单,但是只能为单纯这个类,每个类上要使用都必须加

   @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

第二种,扩展消息转换器

@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    /**
     * 扩展springMvc框架的消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        log.info("消息转换器。。");
        //创建一个消息转换器对象
        MappingJackson2HttpMessageConverter converter=new MappingJackson2HttpMessageConverter();
        //需要为小气转换器设置一个对象转换器,对象转换器可以将java对象序列化为json数据
        converter.setObjectMapper(new JacksonObjectMapper());
        //将自己的消息转化器加入容器中,让索引值为0(排在最前)
        converters.add(0,converter);
    }
}

 JacksonObjectMapper类如下

 
/**
 * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象
 * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]
 * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON]
 */
public class JacksonObjectMapper extends ObjectMapper {
    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    //public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
    public JacksonObjectMapper() {
        super();
        //收到未知属性时不报异常
        this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
        //反序列化时,属性不存在的兼容处理
        this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
        SimpleModule simpleModule = new SimpleModule()
                .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))
                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
        //注册功能模块 例如,可以添加自定义序列化器和反序列化器
        this.registerModule(simpleModule);
    }
}

到此这篇关于Springboot传输数据时日期格式化的文章就介绍到这了,更多相关Springboot传输数据日期格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Native关键字原理及作用解析

    Java Native关键字原理及作用解析

    这篇文章主要介绍了Java Native关键字原理及作用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Eclipse代码格式化设置简单介绍

    Eclipse代码格式化设置简单介绍

    这篇文章主要介绍了Eclipse代码格式化设置简单介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • ConstraintValidator类如何实现自定义注解校验前端传参

    ConstraintValidator类如何实现自定义注解校验前端传参

    这篇文章主要介绍了ConstraintValidator类实现自定义注解校验前端传参的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Springboot使用java.ext.dirs方式的漏洞解析

    Springboot使用java.ext.dirs方式的漏洞解析

    文中给大家介绍了java.ext.dirs在Java9后被弃用,导致兼容性、安全性和管理问题,建议采用SpringBoot的自定义类加载器、模块化系统或容器化技术(如Docker)替代,以提升隔离性与可维护性,下文重点解析Springboot使用java.ext.dirs方式的缺陷,感兴趣的朋友一起看看吧
    2025-08-08
  • 基于Spring MVC的文件上传和下载实现方法

    基于Spring MVC的文件上传和下载实现方法

    在Web应用程序中,文件上传和下载是常见的功能,Spring MVC框架提供了方便的方式来实现这些功能,本文将介绍如何使用Spring MVC实现文件上传和下载,需要的朋友可以参考下
    2023-05-05
  • SpringBoot MyBatis简单快速入门例子

    SpringBoot MyBatis简单快速入门例子

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。这篇文章主要介绍了SpringBoot MyBatis快速入门-简单例子,需要的朋友可以参考下
    2021-07-07
  • 详解使用JavaCV/OpenCV抓取并存储摄像头图像

    详解使用JavaCV/OpenCV抓取并存储摄像头图像

    本篇文章主要介绍了使用JavaCV/OpenCV抓取并存储摄像头图像,实例分析了使用JavaCV/OpenCV抓取并存储摄像头图像的技巧,非常具有实用价值,需要的朋友可以参考下
    2017-04-04
  • Java输入输出流的使用详细介绍

    Java输入输出流的使用详细介绍

    本篇文章介绍了,在Java中输入输出流的使用详细分析。需要的朋友参考下
    2013-04-04
  • SpringBoot启动参数的实现

    SpringBoot启动参数的实现

    SpringBoot通过jar文件方式启动,配置可以通过启动参数进行覆盖,本文就来介绍一下SpringBoot启动参数的实现,感兴趣的可以了解一下
    2025-01-01
  • JAVA中 Spring定时器的两种实现方式

    JAVA中 Spring定时器的两种实现方式

    本文向您介绍Spring定时器的两种实现方式,包括Java Timer定时和Quartz定时器,两种Spring定时器的实现方式各有优点,可结合具体项目考虑是否采用。
    2015-09-09

最新评论