【資料圖】
首先我們應(yīng)該知道,寫(xiě)到數(shù)據(jù)庫(kù)里的時(shí)間,主要和你的mysql時(shí)區(qū)system_time_zone
有關(guān),而把mysql里的數(shù)據(jù)取出來(lái),以json形式響應(yīng)到瀏覽器上,這個(gè)時(shí)間會(huì)經(jīng)過(guò)反序列化的過(guò)程,這時(shí)時(shí)間和注解@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
有關(guān)。
1、首先查看MySQL當(dāng)前的時(shí)間
time_zone說(shuō)明mysql使用system的時(shí)區(qū),system_time_zone說(shuō)明system使用CST時(shí)區(qū)select curtime();show variables like "%time_zone%";
2、進(jìn)行修改
直接在數(shù)據(jù)庫(kù)連接串上添加時(shí)區(qū)set global time_zone = "+8:00"; #修改mysql全局時(shí)區(qū)為北京時(shí)間,也就是我們所在的東8區(qū)set time_zone = "+8:00"; #修改當(dāng)前會(huì)話時(shí)區(qū)flush privileges;
serverTimezone=GMT%2B8 #表示東八區(qū)
為代碼添加對(duì)象的時(shí)區(qū)注解@Column(name = "EXPIRE_DATE")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date expireDate;
修改k8s中pod的時(shí)區(qū)... containers: - name: xxx env: - name: TZ value: Asia/Shanghai... volumeMounts: - name: timezone mountPath: /etc/localtime volumes: - name: timezone hostPath: path: /usr/share/zoneinfo/Asia/Shanghai
總結(jié)事實(shí)上,數(shù)據(jù)庫(kù)里的時(shí)間與顯示出現(xiàn)的時(shí)間不一致,與pod的時(shí)間沒(méi)關(guān)系,主要還是看你的數(shù)據(jù)庫(kù)時(shí)區(qū)與@JsonFormat注解的時(shí)區(qū)。
如果@JsonFormat如果是GMT+8,而連接串里是GMT+0,會(huì)出現(xiàn)下面截圖如果@JsonFormat如果是GMT+8,連接串里也是GMT+8,會(huì)出現(xiàn)我們想要的截圖最后,如果@JsonFormat如果是GMT+8,連接串里也是CST(可能被認(rèn)為是美國(guó)中部時(shí)間,GMT-6),那么它將會(huì)比北京時(shí)間慢8+6小時(shí)標(biāo)簽:
熱門(mén)