Pergunta

Eu tenho meu ambiente de check.rb

config.time_zone = 'Prague'

Nada em desenvolvimento.rb sobre o tempo

Isso parece funcionar, em teoria ...

Time.zone.now # Thu, 10 Sep 2009 17:51:35 CEST +02:00

também correto ...

Time.now # Thu Sep 10 17:52:10 +0200 2009

mysql... SELECT NOW() # 2009-09-10 17:53:48  

correto!

Mas quando eu crio um novo recorde no Rails ou atualiza um antigo

Item.create(:price => price, :spots => beds) # 2009-09-10 15:55:28

E reiniciei Rails muitas vezes!

Foi útil?

Solução

Parece que está salvando -o no UTC (tempo GMT), que é duas horas antes do seu horário local. Em grande parte, os tempos de criação são melhor armazenados no UTC -> você os traduz na visualização.

Editar: o Classe de Timestamp parece indicar que o registro de data e hora local deve ser usado. Você pode verificar a configuração da documentação indica.

Outras dicas

Qual é a hora se você selecionar esse registro através do console? 15:55 ou 17:55?

Se você selecionar através do console, ele usa o fuso horário definido, portanto, naturalmente, ele será diferente do registro de data e hora "real" no banco de dados MySQL.

Dar uma olhada em Inconsistências de tempo estranhas entre produção e desenvolvimento também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top