摘要:加上后有的機(jī)器還是不好使,如果是在下運(yùn)行的項(xiàng)目,那就重啟即可。
寫在前面
今天記錄分享一個(gè)排查部署到 Linux 上的 web 項(xiàng)目執(zhí)行的時(shí)間和本地系統(tǒng)時(shí)間相差 8 小時(shí)的問題
環(huán)境:redhat 6.51 查看 Linux 系統(tǒng)時(shí)間和時(shí)區(qū)
考慮有規(guī)律的時(shí)間差可能和時(shí)區(qū)不同有關(guān)
[root@localhost ~]# date 2019年 03月 31日 星期日 16:00:32 CST [root@localhost ~]# date -R Sun, 31 Mar 2019 16:00:44 +0800 [root@localhost ~]# date +"%Z %z" CST +0800
從這里可以確定,系統(tǒng)的時(shí)間和時(shí)區(qū)正常(北京時(shí)間,也就是東八區(qū)),時(shí)區(qū)詳情請看這里
2 查看 jvm 時(shí)間和時(shí)區(qū)2.1 先在 Linux 上某個(gè)目錄執(zhí)行 javac ,看 javac 命令是否可用,出現(xiàn)如下顯示就可以(中間部分已省略)
[root@localhost test]# javac 用法: javac其中, 可能的選項(xiàng)包括: -g 生成所有調(diào)試信息 -g:none 不生成任何調(diào)試信息 -g:{lines,vars,source} 只生成某些調(diào)試信息 ...... -X 輸出非標(biāo)準(zhǔn)選項(xiàng)的提要 -J<標(biāo)記> 直接將 <標(biāo)記> 傳遞給運(yùn)行時(shí)系統(tǒng) -Werror 出現(xiàn)警告時(shí)終止編譯 @<文件名> 從文件讀取選項(xiàng)和文件名
2.2 編寫測試程序
import java.util.TimeZone; import java.util.Date; public class time { public static void main(String[] args) { System.out.println("當(dāng)前時(shí)間:"+new Date()); System.out.println("當(dāng)前默認(rèn)時(shí)區(qū):"+TimeZone.getDefault()); } }
2.3 編譯執(zhí)行
[root@localhost test]# javac time.java [root@localhost test]# ll 總用量 8 -rw-r--r-- 1 root root 780 3月 31 16:02 time.class -rw-r--r-- 1 root root 239 3月 31 16:00 time.java [root@localhost test]# java time 當(dāng)前時(shí)間:Sun Mar 31 08:02:34 CTM 2019 當(dāng)前默認(rèn)時(shí)區(qū):sun.util.calendar.ZoneInfo[id="GTM",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null]
這里有導(dǎo)其他的包,如果以上命令不好使,則使用如下命令 (中間的點(diǎn) . 是當(dāng)前目錄的意思)
[root@localhost test]# javac -d . time.java [root@localhost test]# ll 總用量 8 -rw-r--r-- 1 root root 780 3月 31 16:03 time.class -rw-r--r-- 1 root root 239 3月 31 11:00 time.java [root@localhost test]# java -cp . time 當(dāng)前時(shí)間:Sun Mar 31 08:02:40 CST 2019 當(dāng)前默認(rèn)時(shí)區(qū):sun.util.calendar.ZoneInfo[id="GTM",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null]
這里顯然 jvm 的時(shí)間比系統(tǒng)的時(shí)間早了 8 個(gè)小時(shí),且是格林威治的時(shí)區(qū),所以這里修改 jvm 的時(shí)區(qū)即可,這里說下,網(wǎng)上查詢說 jvm 的時(shí)區(qū)默認(rèn)讀取的是硬件時(shí)區(qū),目錄為 /etc/sysconfig/clock (詳情),查看如下
[root@localhost test]# cat /etc/sysconfig/clock ZONE="Asia/Shanghai"
與網(wǎng)上對比,這里沒有下面這兩行
UTC=false ARC=false
這里看有人說是沒有設(shè)置 UTC=false 導(dǎo)致的問題,查看資料說 UTC 指定 BIOS 中保存的時(shí)間是否是 GMT/UTC 時(shí)間,true 表示 BIOS 里面保存的時(shí)間是 UTC 時(shí)間,false 表示 BIOS 里面保存的時(shí)間是本地時(shí)間。
加上后有的機(jī)器還是不好使,如果是在 tomcat 下運(yùn)行的項(xiàng)目,那就重啟 tomcat 即可。
如果還不好使,還有修改 tomcat 配置文件的方法,歡迎參考之前的文章:Tomcat修改日期的時(shí)區(qū)
現(xiàn)在問題基本已解決,以上有些內(nèi)容是客戶現(xiàn)場出現(xiàn)的,所以現(xiàn)在記錄時(shí)也是憑筆記和記憶回憶的,如有偏差也請不吝賜教。
文章參考:https://blog.csdn.net/liqingh...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/73994.html
摘要:加上后有的機(jī)器還是不好使,如果是在下運(yùn)行的項(xiàng)目,那就重啟即可。 寫在前面 今天記錄分享一個(gè)排查部署到 Linux 上的 web 項(xiàng)目執(zhí)行的時(shí)間和本地系統(tǒng)時(shí)間相差 8 小時(shí)的問題 環(huán)境:redhat 6.5考慮有規(guī)律的時(shí)間差可能和時(shí)區(qū)不同有關(guān) 1 查看 Linux 系統(tǒng)時(shí)間和時(shí)區(qū) [root@localhost ~]# date 2019年 03月 31日 星期日 16:00:32 CS...
摘要:背景最近做到一個(gè)項(xiàng)目需要陰歷與陽歷的相互轉(zhuǎn)換網(wǎng)上找了很多資料發(fā)現(xiàn)很多都是不準(zhǔn)的但是給了我參考價(jià)值算法借用百度百科的陽歷太陽歷又稱為陽歷,是以地球繞太陽公轉(zhuǎn)的運(yùn)動周期為基礎(chǔ)而制定的歷法。 背景 最近做到一個(gè)項(xiàng)目, 需要陰歷與陽歷的相互轉(zhuǎn)換, 網(wǎng)上找了很多資料, 發(fā)現(xiàn)很多都是不準(zhǔn)的, 但是給了我參考價(jià)值 算法 借用百度百科的 : 陽歷 太陽歷又稱為陽歷,是以地球繞太陽公轉(zhuǎn)的運(yùn)動周期為基礎(chǔ)而...
摘要:背景最近做到一個(gè)項(xiàng)目需要陰歷與陽歷的相互轉(zhuǎn)換網(wǎng)上找了很多資料發(fā)現(xiàn)很多都是不準(zhǔn)的但是給了我參考價(jià)值算法借用百度百科的陽歷太陽歷又稱為陽歷,是以地球繞太陽公轉(zhuǎn)的運(yùn)動周期為基礎(chǔ)而制定的歷法。 背景 最近做到一個(gè)項(xiàng)目, 需要陰歷與陽歷的相互轉(zhuǎn)換, 網(wǎng)上找了很多資料, 發(fā)現(xiàn)很多都是不準(zhǔn)的, 但是給了我參考價(jià)值 算法 借用百度百科的 : 陽歷 太陽歷又稱為陽歷,是以地球繞太陽公轉(zhuǎn)的運(yùn)動周期為基礎(chǔ)而...
閱讀 4097·2021-11-18 13:21
閱讀 4927·2021-09-27 14:01
閱讀 3174·2019-08-30 15:53
閱讀 2451·2019-08-30 15:43
閱讀 1790·2019-08-30 13:10
閱讀 1599·2019-08-29 18:39
閱讀 949·2019-08-29 15:05
閱讀 3400·2019-08-29 14:14