Uma forma de contornar o problema é criar um link simbólico da localidade, no meu caso de America/Sao_Paulo, para America/Sao Paulo, e em seguida setar como a localidade padrão do sistema e reiniciar o relógio. Abaixo um exemplo de programa em java simples para exibir a data/hora atual do sistema, para testar as modificações:
public class TesteHorario {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new Date());
}
}
Para criar um link simbólico para a localidade e setar como padrão do sistema, basta executar:
ln -s /usr/share/zoneinfo/America/Sao_Paulo /usr/share/zoneinfo/America/Sao\ Paulo
ln -sf /usr/share/zoneinfo/America/Sao\ Paulo /etc/localtime
Ou então no caso de existir uma variável de ambiente setada:
ln -s $JRE_HOME/lib/zi/America/Sao_Paulo $JRE_HOME/lib/zi/America/Sao\ Paulo
ln -sf $JRE_HOME/lib/zi/America/Sao\ Paulo /etc/localtime
Para atualizar a data e hora do sistema após a modificação (se necessário):
Exemplo: modificar a data atual para 31 de julho, 11:16, basta digitar no console (perceba que a hora é informada no formato de 24h)
date 07312316
Para atualizar o hardware clock com a data/hora obtidas com o comando date, basta executar:
/sbin/hwclock --systohc
Essas alterações foram suficientes para que o JAVA passasse a exibir a mesma data/hora do sistema operacional (RedHat Enterprise 3)
Nenhum comentário:
Postar um comentário