feign date类型时间错误问题
生活随笔
收集整理的這篇文章主要介紹了
feign date类型时间错误问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
在feign傳輸date類型的數據時,在調用方時間正確,而被調用方獲取時時間會相差14個小時。
原因
Feign客戶端在進行通信時,會將Date類型對象轉為String類型,如果這個時間是北京時間2019年2月19日20點30分,因為中國的時區叫做CTS,所以轉化后的String為“Tue Feb 19 20:30:00 CST 2019”. 服務端將接收的String類型日期轉換為Date類型,轉換采用的是Date的默認構造器new Date('Tue Feb 19 20:30:00 CST 2019'),這里就是錯誤發生的時刻,因為CTS代表的時區其實有四個(Central Standard Time (USA) UT-6:00、Central Standard Time (Australia) UT+9:30、China Standard Time UT+8:00、Cuba Standard Time UT-4:00),同時表示美國,澳大利亞,中國,古巴四個國家的標準時間。根據JavaDoc,jvm會將CTS理解成了美國中部時區,因此造成了時區錯誤。
JVM見到CTS默認是美國的時區(UT-6:00),與中國時區(UT+8:00)相差14個小時。
解決方法
轉載于:https://www.cnblogs.com/ingxx/p/11286866.html
總結
以上是生活随笔為你收集整理的feign date类型时间错误问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:SqlServer数据库性能优化详
- 下一篇: Docker部署ELK 日志归集