2010-05-31 16 views
5

Ich habe Probleme mit der Zeitzonenunterstützung in Rails 3 Beta und würde gerne wissen, ob es ein Bug ist oder ob ich etwas falsch mache. Er ist das Problem:Rails 3 Timezone error

 
> Time.zone = 'Madrid' # it is GMT+2 
=> "Madrid" 
> c = Comment.new 
=> #<Comment id: nil, title: "", pub_at: nil> 
> c.pub_at = Time.zone.parse('10:00:00') 
=> Mon, 31 May 2010 10:00:00 CEST +02:00 
> c.save 
> c 
=> #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> 
> c.reload 
=> #<Comment id: 3, title: "", pub_at: "2010-05-31 08:00:00"> 
ruby-1.8.7-p249 > c.pub_at 
=> Mon, 31 May 2010 13:00:00 CEST +02:00 

Wie Sie sehen können, das pub_at Attribut korrekt in der Datenbank gespeichert, aber wenn es abgerufen wird fügt es 3 Stunden und ich vermute, dass es ist, weil es meine lokale Rechner Zeitzone verwendet, die ist in GMT-3.

Die gleiche Befehlsfolge in den Schienen 2.3.5 funktioniert einwandfrei.

Irgendwelche Toughts? Soll ich ein Ticket melden?

Antwort

3

Wenn ich mich gut erinnere, werden alle Daten in der Datenbank als UTC gespeichert.

Und Schienen und Konsole behandelt die Daten nicht auf die gleiche Weise!

So sollten Sie versuchen, es in Ihrer Anwendung zu testen, indem Sie die Zeitzone in der application.rb Einstellung

config.local_zone = 'Madrid' 

Und dann den Wert drucken! Du solltest die richtige Zeit sehen.

Ich hoffe, diese Hilfe