2012-08-24 272 views
8

¿Cómo puedo cambiar la zona horaria en Tomcat? La zona horaria utilizada por una de las aplicaciones web (Solr) no es correcta (en comparación con las marcas de tiempo MySQL), y creo que cambiar la zona horaria de Tomcat ayudará. ¡Gracias!Cambiar zona horaria en Tomcat

+0

¿En qué usuario se está ejecutando solr y cómo se configura su entorno? – stark

+0

Cargué solr como una aplicación web tomcat, y tomcat6 se ejecuta como usuario 'tomcat'. Tomcat6 se está ejecutando en CentOS 6.3 en el puerto 8080. – Nyxynyx

Respuesta

20

A menos que tomcat tenga una variable de entorno TZ personal, utiliza /etc/localtime que en mi sistema es una copia de /usr/share/zoneinfo/America/New_York.

zona horaria personal de Tomcat se especificaría en su script de inicio en una forma como:

-Duser.timezone=GMT 
+0

El webapp Solcat de tomcat tiene su tiempo más rápido que el tiempo en MySQL/PHP en 4 horas. Si tomcat usa '/ etc/localtime', ¿no debería ser el mismo el tiempo para Solr y MySQL? – Nyxynyx

+1

Tuve el mismo problema. Resulta que Java estaba buscando en el archivo '/ etc/sysconfig/clock'. Esto para comentarios para [más información] (http://grokbase.com/t/tomcat/users/051m0s38p2/how-to-change-the-timezone-for-tomcat#20050120zlgufj6cgdsma7i2olrgcpwia4) – mlathe

+0

Entonces eso es un error en la parte de Java ./etc/sysconfig/clock se está eliminando en las últimas distribuciones. Todo debería estar usando/etc/localtime a menos que el usuario lo anule. – stark

0

Si se refiere a la zona horaria de los datos que se almacenan en Solr ... Todos Fecha/valores de tiempo en Solr se almacenan a través del DateField, que usa UTC.

+0

La hora 'last_index_time' en' DataimforHandler' 'dataimport.properties' es 4 horas antes del tiempo utilizado por PHP/MySQL (EDT, America/Newyork). Cómo debo ajustar la zona horaria UTC utilizada por Solr (o Tomcat) – Nyxynyx

+0

Verifique cualquier secuencia de comandos o archivo de configuración de tomcat para CATALINA_OPTS – stark

+0

Cuando @stark respondió, pase el valor -Duser.timezone al iniciar Tomcat vea esto ... http: // www.zeentan.com/wp/apache-solr-timezone-issue –

5

Esto es lo que agrego al inicio del catalina.sh (después shabang) para cambiar la zona horaria de Tomcat:

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

y no se olvide de reiniciar Tomcat para tener efecto.

0

Como se ha dicho Eric Wang se puede utilizar

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

pero en el servidor CentOS no he encontrado catalina.sh, en lugar de que estas variables añaden a/etc/sysconfig/tomcat6, y eso es obra!