2012-08-24 147 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中,这就是作品!