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