Hora incorreta no banco de dados postgresql

1

Eu tenho uma VM XP (Xen) executando o postgresql 8.3.5. Tudo estava bem, até a semana passada, o tempo aparecia 1 hora à frente.

Assim, o XP é configurado para o horário da montanha, sem ntp ou qualquer outra sincronização - Esta máquina não tem acesso à Internet.

O Postgres tem todas as configurações padrão no postgresql.conf, então ele deve pegar a hora do sistema.

Aqui está a saída de vários comandos ... O tempo de montanha atual era "14:06" quando eu executei estes comandos .... (os pls ignoram as diferenças de minuto / segundo / ms abaixo)

SHOW TIME ZONE;
"US/Mountain"

select now()
"2011-11-01 15:06:42.885-06"

select now()::timestamptz
"2011-11-01 15:06:51.828-06"

select localtime
"15:06:59.799"

select timezone('MST'::text, now())
"2011-11-01 14:07:10.535"

Como você pode ver, apenas o último comando consegue mostrar a hora corretamente. Eu não consigo entender porque de repente está indo uma hora à frente.

Outras observações interessantes:

  1. O servidor de aplicativos JBOSS em execução na mesma máquina tem o mesmo comportamento

  2. Outra aplicação Java autônoma mostra a hora correta embora ...

Então, se houve algo errado no nível do sistema operacional, ele deve ter sido consistente em todos os aplicativos em execução no sistema operacional ... mas alguns deles como o JBOSS, o postgresql está mostrando 15:06 : 06

    
por FatherFigure 01.11.2011 / 21:12

1 resposta

2

parece que você precisa atualizar sua versão do PostgreSQL. Eu acredito que 8.3.16 é atual. As regras de horário de verão mudaram nos últimos anos.

addendum: de acordo com JBOSS , chegou a hora do SO ou da JVM, dependendo do cenário descrito nesse link. Então você deve verificar a JVM e o SO também.

    
por 01.11.2011 / 22:06