<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天生產上突然出現了列表日期錯誤,與資料庫實際差了8個小時;
這下可尷尬了,之前迭代都是正常,肯定是那裡出么蛾子了,一頓排除,原來是新新增攔截器繼承WebMvcConfigurationSupport導致date-format時間格式失效了。
順帶學習了一下@JsonFormat和@DateTimeFormat的用法:
註解@JsonFormat主要是後臺到前臺的時間格式的轉換
註解@DateTimeFormat主要是前後到後臺的時間格式的轉換
主要解決前端時間控制元件傳值到後臺接收準確的Date類屬性的問題,我們可以在需要接收的類中對應的時間型別屬性上加上@DateTimeFormat註解,並在註解中加上pattern屬性。
// 出生年月日 @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss") private Date birthday;
該註解主要解決後臺從資料庫中取出時間型別賦予java物件的Date屬性值無法在前端以一定的日期格式來呈現,預設返回的是一個帶時區的格式串,不符合我們日常要呈現的yyyy-MM-dd格式的日期。 同樣,我們在對應的接收物件時間型別上加上@JsonFormat註解,並在註解中加上pattern屬性以及timezone屬性,例如:
// 出生年月日 @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date birthday;
pattern:是你需要轉換的時間日期的格式
timezone:是時間設定為東八區,避免時間在轉換中有誤差;GMT+8表示我們以東八區時區為準。
1、資料庫設定時區serverTimezone=Asia/Shanghai或者serverTimezone=GMT%2B8
解決mysql從資料庫查詢的時間與實際時間相差8小時:
spring.datasource.url=jdbc:mysql://10.35.105.25:3306/database?characterEncoding=utf-8&serverTimezone=GMT%2B8
2、設定spring.jackson
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8
spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss
SpringBoot攔截器SpringBoot攔截器繼承WebMvcConfigurationSupport導致date-format時間格式失效
1、解決辦法不繼承WebMvcConfigurationSupport,修改為實現WebMvcConfigurer介面
@Configuration public class WebConfig implements WebMvcConfigurer { @Resource private JwtInterceptor jwtInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(jwtInterceptor) //攔截所有url .addPathPatterns("/**") //排除登入url .excludePathPatterns("/", "/login"); } }
2、另外還有方式就是引入fastjson替換jackson
3、也可以繼承WebMvcConfigurationSupport重寫configureMessageConverters,自定義轉換器處理日期型別轉換
@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder() .dateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")) .serializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL); converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8)); converters.add(new MappingJackson2HttpMessageConverter(builder.build())); }
以上就是Java日期轉換註解設定date format時間失效的詳細內容,更多關於Java日期轉換註解設定的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45