Dica de Linux - Corrigir fuso-horário e hora no TOMCAT

Para quem precisa corrigir a hora errada apresentada no Tomcat.
As vezes temos que alterar o fuso horário do sistema Linux para sincronizar com do Java/Tomcat. Assim, os logs do sistema vão casar com o horário do Tomcat/Java. Para isso, verifique em seu sistema qual o fuso-horário com o comando: timedatectl

               Local time: Sat 2022-10-15 01:16:48 -03
           Universal time: Sat 2022-10-15 04:16:48 UTC
                 RTC time: Sat 2022-10-15 04:16:48
                Time zone: America/Sao_Paulo (-03, -0300)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

a linha Time zone aponta para o fuso horário do seu sistema

Para obter a lista de zonas de tempo use o comando abaixo:

timedatectl list-timezones

Para filtrar por exemplo uma cidade:

sudo timedatectl list-timezones | grep Mana

ele vai retornar assim:

America/Managua
America/Manaus

Para alterar o fuso-horário, use o comando abaixo para alterar o fuso horário:

exemplo:

Reinicie o Linux para as mudanças serem efetivadas.

usando o comando date, voce vai obter a data e hora atual:

date
Sat Oct 15 01:27:35 -03 2022

Com a hora corrigida no seu sistema, podemos agora dizer ao tomcat qual é o fuso-horário atual:

Va na pasta /opt/ScadaBR/tomcat/bin/ e edite o arquivo catalina.sh

procure pelas linhas abaixo:

# Register custom URL handlers
# Do this here so custom URL handles (specifically 'war:...') can be used in the security policy
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true  -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"

após a palavra $JAVA_OPTS acrescente a String:

-Duser.timezone=America/Manaus

ela deverá ficar assim:

JAVA_OPTS="$JAVA_OPTS -Duser.timezone=America/Manaus -Djava.awt.headless=true  -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"

Salve o arquivo e reinicie o tomcat com os comandos:

bash catalina.sh stop
bash catalina.sh start

Verifique agora dentro do ScadaBR o horário corrigido.