springboot2.0 配置時(shí)間格式化不生效問題的解決
在開發(fā)中日期最常打交道的東西之一,但是日期又會(huì)存在各式各樣的格式,常見的情形就是,從數(shù)據(jù)庫(kù)取出的日期往往都是時(shí)間戳(毫秒數(shù))的形式,這個(gè)一般情況下是前端不想要的結(jié)果,需要進(jìn)行處理,那在springboot中比較簡(jiǎn)單:
pom.xml中添加依賴
<!-- 日期格式化 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> <version>1.5.2.RELEASE</version> </dependency>
要在application.properties進(jìn)行如下配置:
#日期格式化 spring.jackson.date-format=yyyy-MM-dd spring.jackson.time-zone=GMT+8 spring.jackson.serialization.write-dates-as-timestamps=false
注:
- 第1行設(shè)置格式
- 第2行設(shè)置時(shí)區(qū)
- 第3行表示不返回時(shí)間戳,如果為 true 返回時(shí)間戳,如果這三行同時(shí)存在,以第3行為準(zhǔn)即返回時(shí)間戳
但是,網(wǎng)上很多人照著做了還是有問題,照樣不能格式化,為嘛?
這里大家注意,看看自己的代碼有沒有因?yàn)樘砑訑r截器二創(chuàng)建了一個(gè)配置類,該類繼承了WebMvcConfigurationSupport,就是他!以前是用 WebMvcConfigurerAdapter ,springboot 2.0 建議使用 WebMvcConfigurationSupport 。但是在添加攔截器并繼承 WebMvcConfigurationSupport 后會(huì)覆蓋@EnableAutoConfiguration關(guān)于WebMvcAutoConfiguration的配置!從而導(dǎo)致所有的Date返回都變成時(shí)間戳!
可以采用另外一種方式,在你繼承WebMvcConfigurationSupport的子類中添加日期轉(zhuǎn)換的bean
@Configuration public class Configurer extends WebMvcConfigurationSupport{ @Autowired HttpInterceptor httpInterceptor; //定義時(shí)間格式轉(zhuǎn)換器 @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; } //添加轉(zhuǎn)換器 @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { //將我們定義的時(shí)間格式轉(zhuǎn)換器添加到轉(zhuǎn)換器列表中, //這樣jackson格式化時(shí)候但凡遇到Date類型就會(huì)轉(zhuǎn)換成我們定義的格式 converters.add(jackson2HttpMessageConverter()); } @Override protected void addInterceptors(InterceptorRegistry registry) { // TODO Auto-generated method stub registry.addInterceptor(httpInterceptor).addPathPatterns("/**"); super.addInterceptors(registry); } }
這樣就可解決問題!
到此這篇關(guān)于springboot2.0 配置時(shí)間格式化不生效問題的解決的文章就介紹到這了,更多相關(guān)springboot2.0時(shí)間格式化不生效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot使用Jackson配置全局時(shí)間日期格式
- springboot 返回json格式數(shù)據(jù)時(shí)間格式配置方式
- SpringBoot中@Pattern注解對(duì)時(shí)間格式校驗(yàn)方式
- SpringBoot利用jackson格式化時(shí)間的三種方法
- SpringBoot中時(shí)間類型 序列化、反序列化、格式處理示例代碼
- 關(guān)于Springboot日期時(shí)間格式化處理方式總結(jié)
- springboot json時(shí)間格式化處理的方法
- springboot項(xiàng)目中統(tǒng)一時(shí)間格式處理方法
相關(guān)文章
Java中使用Preferences 的 API設(shè)置用戶偏好
這篇文章主要介紹了Java中使用Preferences 的 API設(shè)置用戶偏好的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09Java面向?qū)ο蟪绦蛟O(shè)計(jì):繼承,多態(tài)用法實(shí)例分析
這篇文章主要介紹了Java面向?qū)ο蟪绦蛟O(shè)計(jì):繼承,多態(tài)用法,結(jié)合實(shí)例形式分析了java繼承與多態(tài)的相關(guān)概念、原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-04-04Java數(shù)組傳遞及可變參數(shù)操作實(shí)例詳解
這篇文章主要介紹了Java數(shù)組傳遞及可變參數(shù)操作,結(jié)合實(shí)例形式詳細(xì)分析了java數(shù)組參數(shù)傳遞與可變參數(shù)相關(guān)使用技巧,需要的朋友可以參考下2019-09-09Java編程用兩個(gè)棧實(shí)現(xiàn)隊(duì)列代碼分享
這篇文章主要介紹了Java編程用兩個(gè)棧實(shí)現(xiàn)隊(duì)列代碼分享,具有一定參考價(jià)值,這里給大家分享下,供需要的朋友了解。2017-10-10從零開始在Centos7上部署SpringBoot項(xiàng)目
本文主要介紹了從零開始在Centos7上部署SpringBoot項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04