Ejecutar Webapp en Mac en UTC (ya sea cambiando la zona horaria de MacBook o la zona horaria de tomcat)

2

Para ejecutar mi aplicación web, necesito configurar mi zona horaria en UTC en mi MacBook. Puedo hacer esto temporalmente abriendo una Konsole y entrando

sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime

Sin embargo, mi zona horaria vuelve a la normalidad cuando reinicio mi máquina.

¿Algún consejo?

Editar : La respuesta a esta pregunta de 'Celada' implica que puedo hacer mi Servidor UTC. Estoy usando Apache Tomcat 7. Agregando a la respuesta de Celada, ¿cómo puedo hacerla UTC?

Actualización: 3 de abril : después de la respuesta de Celada, he intentado agregar SetEnv TZ UTCen la parte superior de startup.sh. Esto no pareció hacer la diferencia. Después de investigar un poco, intenté agregar export JAVA_OPTS="-Duser.timezone=UTC"a startup.sh, pero esto tampoco tuvo ningún efecto. ¿Estoy agregando el comando correcto al archivo correcto?

Andy A
fuente

Respuestas:

1

Supongo que si usa el panel de control para cambiar la zona horaria, su cambio no se aplastará en cada reinicio.

Si le preocupa que la zona horaria se revierta cada vez que reinicie, entonces parece que desea que el cambio sea permanente, no temporal, así que en ese caso, ¿por qué no usa el panel de control?

Si este cambio es solo para su aplicación web, ¿por qué no cambia la zona horaria solo para el servidor web en lugar de globalmente en la máquina? Esto debería ser tan simple como agregar

SetEnv TZ UTC

hasta el final de /etc/apache2/httpd.conf.

Si eso no funciona, podría deberse a que la TZvariable necesitaría establecerse antes de que Apache se inicie en lugar de ser configurada por Apache. En ese caso, lo siguiente es más complicado, pero seguramente funcionará:

  1. Editar /System/Library/LaunchDaemons/org.apache.httpd.plist

    Agrega las líneas

    <key>EnvironmentVariables</key>
    <dict>
            <key>TZ</key>
            <string>UTC</string>
    </dict>
    

    justo antes de la línea que lee </dict>cerca del fondo

  2. Recargar esa configuración

    launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist
    launchctl load /System/Library/LaunchDaemons/org.apache.httpd.plist
    

Todo esto debe hacerse como root.

Celada
fuente
Hola Celada, gracias por tu respuesta. ¿Qué quieres decir con 'Panel de control'? Ten en cuenta que estoy en una Mac, no en Windows. He encontrado una opción de zona horaria en 'Fecha y hora' de Preferencias del sistema, pero no vi ninguna opción para UTC.
¿No es "Panel de control"? El término técnico para los elementos individuales allí solía ser 'CDev', pero creo que ese término podría ser obsoleto. Entonces, lo que quiero decir es como lo llamen en estos días. Lo siento, no estoy frente a mi MacBook ahora (está en casa), así que no puedo verificarlo. De todos modos, me sorprende que no haya una zona horaria UTC o equivalente a UTC que pueda establecer desde allí. Si no puede encontrar uno, entonces pruebe la SetEnvsolución de Apache .
Probaré la idea de Apache. Actualmente estoy buscando el archivo al que necesito agregar esto. ... (si puede guiarme, por favor hágalo)
Mmm, no tengo experiencia con esto. ¿A qué archivo agrego la línea? ¿Es uno de los archivos en la carpeta conf en mi carpeta apache-tomcat-7.0.26? (Eso es una suposición completa)
Actualicé la pregunta con más información sobre cómo establecer una variable de entorno en Apache. SIN EMBARGO, veo en su último comentario que es posible que no esté utilizando el Apache predeterminado proporcionado por Apple, sino más bien tomcat. Si es así, deberá editar el archivo conf (para la SetEnvversión) o iniciar el script (para la launchctlversión) correspondiente a ese servidor web. No estoy seguro de qué archivos serían para usted porque no sé dónde / cómo se realiza la instalación de Tomcat. Pero espero que pueda localizar los archivos análogos.
0

Bingo. He logrado configurar mi zona horaria de tomcat en UTC. En bin / catalina.sh agreguéCATALINA_OPTS=-Duser.timezone=UTC

Andy A
fuente