項(xiàng)目場(chǎng)景:
springboot項(xiàng)目通過時(shí)間篩選數(shù)據(jù)、
問題描述
時(shí)間篩選問題,同一服務(wù)部署在本地和Linux服務(wù)器,同樣的時(shí)間篩選數(shù)據(jù)不一致
接收的參數(shù)
@JsonFormat(pattern = "yyyy-MM-dd")
private Date queryDate;
服務(wù)器打印日志出來的時(shí)間為
Wed Jun 08 00:00:00 UTC 2022
本地打印出來的時(shí)間為
Wed Jun 08 00:00:00 CST 2022
數(shù)據(jù)庫(kù)連接配置
url: jdbc:mysql://xx/xx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
原因分析:
本地的時(shí)區(qū) 和 服務(wù)器的時(shí)區(qū)不一致
UTC時(shí)間:世界協(xié)調(diào)時(shí)間(UTC)也就是零時(shí)區(qū)的時(shí)間
CST時(shí)間:中央標(biāo)準(zhǔn)時(shí)間 Central Standard Time (USA) UT-6:00(美國(guó)cst時(shí)間:零區(qū)時(shí)減6個(gè)小時(shí))
如:當(dāng)UTC時(shí)間為0點(diǎn)時(shí),中國(guó)CST時(shí)間為8點(diǎn),因?yàn)榱銜r(shí)區(qū)和中國(guó)北京時(shí)區(qū)相差8個(gè)時(shí)區(qū)
UTC + 8 就是中國(guó)的時(shí)間
解決方案:
需要將Linux系統(tǒng)時(shí)間Date改為CST
# 備份
mv /etc/localtime /etc/localtime.bak
# 軟鏈接到上海時(shí)區(qū)文件
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 更新硬件時(shí)間
hwclock -w
使用命令date查看系統(tǒng)當(dāng)前時(shí)間
date
timedatectl查看系統(tǒng)時(shí)間概覽
timedatectl
文章來源:http://www.zghlxwxcb.cn/news/detail-501104.html
使用命令修改時(shí)區(qū)后,應(yīng)用服務(wù)可能無法篩選出正確結(jié)果,重啟應(yīng)用后恢復(fù)正常文章來源地址http://www.zghlxwxcb.cn/news/detail-501104.html
到了這里,關(guān)于springboot服務(wù)時(shí)間篩選問題,同一服務(wù)部署在本地和Linux服務(wù)器,同樣的時(shí)間篩選數(shù)據(jù)不一致的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!