HI 大家好,我是菜鳥阿貴
近期在項目中遇到了一小小的問題,雖然不是大問題,但是自行百度以後覺得網友們用的技術和我的不太一樣,所以我在這裏給大家說明一下!
問題說明:項目是一個從前端拉取數據庫數據的操作,但是今天在拉取的時候出現了這個問題:
1:其他數據都顯示正確,可是就是時間戳有點問題,數據庫中的時間,和前段拉到的時間竟然相差八個小時!
2:這究竟是什麼原因呢?讓小弟來和大家講解一下:
①:原因:由於默認的是UTC時間,所以在中國有8個小時的時差!
簡單的來說,您需要將他改成本地時間,因爲數據庫會默認UTC,而我們中國要比這個時間多八小時!
刪除線utc格式
2: 如圖:我的H2數據庫時間數據:
如圖我們可以看出,我的時間戳是:2020-05-22 12:40:46
但是前段顯示的是這樣的:
由此可見,前段時間提前了八小時,那我們怎麼去解決呢,很簡單,你只需要在後端代碼中,實體類的地方,時間字段上添加如下代碼即可:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
pattern:中的時間格式定義,您可以改成自己想要格式即可!
爲什麼本文要特別說明是 H2 數據庫?
因爲在網上都是Mysql 等相關數據庫的這類問題,很多新手朋友一看不是和自己相同的H2數據問題,他就會被誤導,其實各種數據庫遇到這種啊問題都是一樣的方法,只需要在實體類要獲取的時間字段上面添加此代碼即可解決!
-------------金麟豈是池中物一遇風雲便化龍----------------