springboot2.0 配置时间格式化不生效问题的解决

 更新时间:2020年09月02日 10:01:24   作者:YO_RUI  
这篇文章主要介绍了springboot2.0 配置时间格式化不生效问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在开发中日期最常打交道的东西之一,但是日期又会存在各式各样的格式,常见的情形就是,从数据库取出的日期往往都是时间戳(毫秒数)的形式,这个一般情况下是前端不想要的结果,需要进行处理,那在springboot中比较简单:

pom.xml中添加依赖

<!-- 日期格式化 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-rest</artifactId>
	<version>1.5.2.RELEASE</version>
</dependency>

要在application.properties进行如下配置:

#日期格式化
spring.jackson.date-format=yyyy-MM-dd
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false

注:

  • 第1行设置格式
  • 第2行设置时区
  • 第3行表示不返回时间戳,如果为 true 返回时间戳,如果这三行同时存在,以第3行为准即返回时间戳

但是,网上很多人照着做了还是有问题,照样不能格式化,为嘛?

这里大家注意,看看自己的代码有没有因为添加拦截器二创建了一个配置类,该类继承了WebMvcConfigurationSupport,就是他!以前是用 WebMvcConfigurerAdapter ,springboot 2.0 建议使用 WebMvcConfigurationSupport 。但是在添加拦截器并继承 WebMvcConfigurationSupport 后会覆盖@EnableAutoConfiguration关于WebMvcAutoConfiguration的配置!从而导致所有的Date返回都变成时间戳!

可以采用另外一种方式,在你继承WebMvcConfigurationSupport的子类中添加日期转换的bean

@Configuration
public class Configurer extends WebMvcConfigurationSupport{
	
	@Autowired
	HttpInterceptor httpInterceptor;
	
	//定义时间格式转换器
	@Bean
	public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
	  MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
	  ObjectMapper mapper = new ObjectMapper();
	  mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
	  mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
	  converter.setObjectMapper(mapper);
	  return converter;
	}

	//添加转换器
	@Override
	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
	  //将我们定义的时间格式转换器添加到转换器列表中,
	  //这样jackson格式化时候但凡遇到Date类型就会转换成我们定义的格式
	  converters.add(jackson2HttpMessageConverter());
	}

	@Override
	protected void addInterceptors(InterceptorRegistry registry) {
		// TODO Auto-generated method stub
		registry.addInterceptor(httpInterceptor).addPathPatterns("/**");
		super.addInterceptors(registry);
	}	
}

这样就可解决问题!


到此这篇关于springboot2.0 配置时间格式化不生效问题的解决的文章就介绍到这了,更多相关springboot2.0时间格式化不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java异常处理的五个关键字

    Java异常处理的五个关键字

    本篇文章给大家详细讲述了关于Java异常处理的相关知识点,并列举了5个重要关键字,一起啊参考学下。
    2018-03-03
  • Java中使用Preferences 的 API设置用户偏好

    Java中使用Preferences 的 API设置用户偏好

    这篇文章主要介绍了Java中使用Preferences 的 API设置用户偏好的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Java面向对象程序设计:继承,多态用法实例分析

    Java面向对象程序设计:继承,多态用法实例分析

    这篇文章主要介绍了Java面向对象程序设计:继承,多态用法,结合实例形式分析了java继承与多态的相关概念、原理、实现方法与操作注意事项,需要的朋友可以参考下
    2020-04-04
  • JavaWeb中Servlet的深入理解

    JavaWeb中Servlet的深入理解

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层
    2021-10-10
  • Jackson自定义序列化反序列化注解加解密字段详解

    Jackson自定义序列化反序列化注解加解密字段详解

    这篇文章主要介绍了Jackson自定义序列化反序列化注解加解密字段详解,一些场景中,数据库字段用于存储json格式数据,处于安全的考虑,该json数据中,某些敏感信息字段需要做加密存储,例如身份证号、手机号等,需要的朋友可以参考下
    2023-11-11
  • java用扑克牌计算24点

    java用扑克牌计算24点

    这篇文章主要为大家详细介绍了java实现24点扑克牌游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • JavaMail入门教程之创建邮件(2)

    JavaMail入门教程之创建邮件(2)

    这篇文章主要介绍了JavaMail入门教程之创建邮件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Java数组传递及可变参数操作实例详解

    Java数组传递及可变参数操作实例详解

    这篇文章主要介绍了Java数组传递及可变参数操作,结合实例形式详细分析了java数组参数传递与可变参数相关使用技巧,需要的朋友可以参考下
    2019-09-09
  • Java编程用两个栈实现队列代码分享

    Java编程用两个栈实现队列代码分享

    这篇文章主要介绍了Java编程用两个栈实现队列代码分享,具有一定参考价值,这里给大家分享下,供需要的朋友了解。
    2017-10-10
  • 从零开始在Centos7上部署SpringBoot项目

    从零开始在Centos7上部署SpringBoot项目

    本文主要介绍了从零开始在Centos7上部署SpringBoot项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04

最新评论