2012-08-24 179 views
8

如何更改Tomcat中的時區?其中一個web應用程序(Solr)使用的時區不正確(與MySQL時間戳相比),我認爲更改Tomcat的時區將有所幫助。謝謝!在Tomcat中更改時區

+0

什麼用戶正在運行,它的環境設置爲? – stark

+0

我將solr作爲tomcat webapp加載,tomcat6以用戶'tomcat'運行。 Tomcat6在端口8080上的CentOS 6.3中運行。 – Nyxynyx

回答

20

除非tomcat具有個人TZ環境變量,那麼它使用/etc/localtime,在我的系統上它是/usr/share/zoneinfo/America/New_York的副本。

Tomcat的個人時區將在它的啓動腳本中指定的形式,如:

-Duser.timezone=GMT 
+0

tomcat webapp Solr的時間比MySQL/PHP中的時間快4個小時。如果tomcat使用'/ etc/localtime',Solr和MySQL的時間不應該是相同的嗎? – Nyxynyx

+1

我有同樣的問題。對我來說,Java正在尋找'/ etc/sysconfig/clock'文件。這對於[更多信息]的評論(http://grokbase.com/t/tomcat/users/051m0s38p2/how-to-change-the-timezone-for-tomcat#20050120zlgufj6cgdsma7i2olrgcpwia4) – mlathe

+0

然後,這是Java的一部分錯誤。在最近的發行版中,/ etc/sysconfig/clock正在被淘汰。除非用戶覆蓋它,否則一切應該使用/ etc/localtime。 – stark

0

如果你指的是數據的時區被存儲在Solr的...所有的日期/時間值的Solr通過使用UTC的DateField存儲。

+0

DataImporHandler的'dataimport.properties'中的'last_index_time'時間比PHP/MySQL(EDT,America/Newyork)使用的時間提前了4個小時。我應該如何調整Solr(或Tomcat)使用的UTC時區 – Nyxynyx

+0

檢查任何Tomcat啓動腳本或配置文件的CATALINA_OPTS – stark

+0

由於@stark回答,傳遞-Duser.timezone值時啓動Tomcat看到這... http:// www.zeentan.com/wp/apache-solr-timezone-issue –

5

這裏是我加在catalina.sh(後shabang)來更改Tomcat的時區開始:

TOMCAT_TIMEZONE="-Duser.timezone=Europe/Budapest" 
CATALINA_OPTS="$CATALINA_OPTS $TOMCAT_TIMEZONE" 

而且不要忘了重新啓動Tomcat才能生效。

0

正如埃裏克說,王,你可以使用

TOMCAT_TIMEZONE="-Duser.timezone=Europe/Budapest" 
CATALINA_OPTS="$CATALINA_OPTS $TOMCAT_TIMEZONE" 

但CentOS的服務器上我沒有找到catalina.sh,而不是我添加這些變量到/ etc/SYSCONFIG/tomcat6中,這就是作品!