Esse ano foi determinado que o estado de São Paulo não haveria mais horário de verão, isso implicou em alguns problemas no setor de TI, muitos dispositivos mudaram automaticamente e a própria JVM
deu alguns problemas, ao criarmos um new Date()
por exemplo, o horário de verão estava presente. Isso aconteceu comigo em uma determinada versão do JDK
e uma das soluções foi atualiza-lo para uma versão mais recente, porém nem sempre isso é possível. Uma solução para esse tipo de problema que não precise atualizar o JDK
é definir na inicialização do programa o argumento user.timezone
que diz qual TimeZone
a aplicação passará a utilizar.
Na configuração do TimeZone
aonde é exibido -03:00
pode ser alterado para o de sua preferência, pode-se também passar o TimeZone
descritivo, exemplo: Europe/Sofia
.
APLICAÇÃO: adicionar o argumento na inicialização
java -Duser.timezone=-03:00 -jar MeuJar.jar
TOMCAT: editar o arquivo: /bin/catalina.sh
[...]
# Adicionar: ( caso o argumento já esteja definido, separar os argumentos por espaço)
JAVA_OPTS="-Duser.timezone=-03:00"
[...]
GLASSFISH: editar o arquivo: /domains/seu_domain/config/domain.xml
<jvm-config [...] >
[...]
<jvm-options>-Duser.timezone=-03:00</jvm-options>
[...]
</jvm-config>
Referência: https://stackoverflow.com/questions/2493749/how-to-set-a-jvm-timezone-properly