部署在Tomcat 服務(wù)器中的web應(yīng)用讀取時間與系統(tǒng)時間不一致問題

? ? ? 我在部署應(yīng)用到Ubantu系統(tǒng)上的tomcat服務(wù)器中運行,發(fā)現(xiàn)操作系統(tǒng)的時間和tomcat中的應(yīng)用程序獲取的時間不一致癞揉,總是相差8個小時歪今,但是查看當(dāng)前操作系統(tǒng)的時區(qū)也是CST時區(qū)(中國標(biāo)準(zhǔn)時區(qū))。

查看系統(tǒng)的時區(qū):

root@localhost:~# date +"%Z %z"

CST +0800

? ? ? 說明時區(qū)沒有問題珊随,是東八區(qū)時區(qū),但是為什么tomcat啟動的時候沒有使用我設(shè)置好的時區(qū)呢柿隙?最后我通過java代碼直接獲取默認(rèn)時區(qū)叶洞,發(fā)現(xiàn)輸出的的是:Etc/UTC,怪不得時間差8小時禀崖,如下圖:

獲取系統(tǒng)默認(rèn)時區(qū)

Java代碼獲取系統(tǒng)默認(rèn)時區(qū):

System.out.println(newDate());

System.out.println(System.getProperty("user.timezone"));

? ? ? 在啟動java程序的時候添加上-Duser.timezone=Asia/Shanghai參數(shù)衩辟,時區(qū)變對了,其原因是java程序在啟動的時候如果沒有指定時區(qū)波附,默認(rèn)會根據(jù)System.getProperty("user.timezone")去獲取時區(qū)操作系統(tǒng)配置文件中配置的時區(qū)艺晴。

Ubantu操作系統(tǒng)時區(qū)配置文件是/etc/timezone昼钻,將文件中的內(nèi)容修改成Asia/Shanghai,保證java程序在啟動的時候初始化時區(qū)是東八區(qū)封寞。

Centos6.X操作系統(tǒng)的時區(qū)配置文件是/etc/sysconfig/clock然评,將文件內(nèi)容修改為ZONE="Asia/Shanghai",來修正時區(qū)為東八區(qū)狈究,保證java程序在啟動的時候初始化時區(qū)是東八區(qū)碗淌。



修改Linux系統(tǒng)時區(qū),以Ubantu和centos6.x為例:

修改Ubantu系統(tǒng)時區(qū)
時區(qū)修改成功

執(zhí)行:

cp /usr/share/zoneinfo/Asia/Shanghai? /etc/localtime

修改/etc/default/rcS中的UTC=yes改為UTC=no (Centos.x不用做這個操作)

時間同步:ntpdate time.windows.com

硬件時間和系統(tǒng)時間校準(zhǔn):

sudo hwclock --systohc --localtime


時區(qū)修改成功谦炒,但是記得修改時區(qū)默認(rèn)配置文件/etc/timezone中的內(nèi)容為Asia/Shanghai(Centos6.x修改的是/etc/sysconfig/clock文件中的內(nèi)容為ZONE="Asia/Shanghai")贯莺。

檢查時間是否一致,右下圖可知系統(tǒng)時間和硬件時間已經(jīng)保持一致了:

檢查時間是否一致

注:在配置時區(qū)的時候宁改,注意一定要校準(zhǔn)系統(tǒng)時間和硬件時間缕探,讓兩個時間保持一致

? ? ? 但是还蹲,有的時候通過以上步驟還是解決不了java程序時區(qū)問題爹耗,java程序讀取時間還是不對,甚至System.getProperty("user.timezone")都讀不到時區(qū)信息,只有System.out.println(java.util.TimeZone.getDefault().getID())可以讀到谜喊,并且讀到的是系統(tǒng)在修改時區(qū)的時區(qū)信息潭兽。主要原因是我們在安裝JDK之后發(fā)現(xiàn)時間不對才去修改的系統(tǒng)時區(qū),此時jdk已經(jīng)默認(rèn)使用系統(tǒng)修改之前的那個時區(qū)斗遏,已經(jīng)改不回來了山卦,刪掉jdk重裝也沒用。

有兩種方法解決這個問題:

1诵次、使用-Duser.timezone=GMT+08來指定時區(qū)账蓉;

2、就是修改/etc/profile文件逾一,在文件的末尾添加 export TZ='Asia/Shanghai'铸本,然后使用命令source /etc/profile使其生效即可。


總結(jié):

java程序在初始化時區(qū)的時候遵堵,如果沒有指定JVM參數(shù)-Duser.timezone=GMT+08,java程序就會默認(rèn)讀取操作系統(tǒng)的時區(qū)來初始化java程序的時區(qū)箱玷。

為了保證java程序在啟動時加載正確的默認(rèn)時區(qū):

1、需要將系統(tǒng)的時區(qū)改正確

2陌宿、還需要將硬件時鐘的系統(tǒng)時鐘校準(zhǔn)

3锡足、修改配置文件中的時區(qū)參數(shù)

4、在/etc/profile文件末尾添加:export TZ='Asia/Shanghai

5壳坪、修改tomcat安裝目錄下的bin目錄下的catalina.sh腳本舱污,添加JVM參數(shù)JAVA_OPTS="${JAVA_OPTS} -Duser.timezone=GMT+08",來保證Tomcat的時區(qū)是東八區(qū)時區(qū)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弥虐,一起剝皮案震驚了整個濱河市扩灯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霜瘪,老刑警劉巖珠插,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異耻陕,居然都是意外死亡尚洽,警方通過查閱死者的電腦和手機其掂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來顾患,“玉大人,你說我怎么就攤上這事个唧〗猓” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵徙歼,是天一觀的道長犁河。 經(jīng)常有香客問我,道長魄梯,這世上最難降的妖魔是什么桨螺? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮酿秸,結(jié)果婚禮上灭翔,老公的妹妹穿的比我還像新娘。我一直安慰自己辣苏,他們只是感情好肝箱,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著考润,像睡著了一般狭园。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糊治,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天唱矛,我揣著相機與錄音,去河邊找鬼井辜。 笑死绎谦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粥脚。 我是一名探鬼主播窃肠,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼刷允!你這毒婦竟也來了冤留?” 一聲冷哼從身側(cè)響起碧囊,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纤怒,沒想到半個月后糯而,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡泊窘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年熄驼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烘豹。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓜贾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出携悯,到底是詐尸還是另有隱情祭芦,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布蚌卤,位于F島的核電站实束,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逊彭。R本人自食惡果不足惜咸灿,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望侮叮。 院中可真熱鬧避矢,春花似錦、人聲如沸囊榜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卸勺。三九已至砂沛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間曙求,已是汗流浹背碍庵。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悟狱,地道東北人静浴。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像挤渐,于是被迫代替她去往敵國和親苹享。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容