2016-12-05 1 views
1

Ich verwende Rails 4 versucht, mit dem in_time_zone Helfer arbeiten, und kann das seltsame Verhalten nicht verstehen.Rails 4 - in_time_zone unerwartetes Verhalten

Wenn mein Zeitstempel UTC in localhost (oder von der Konsole) Umwandlung, funktioniert alles wie erwartet:

"2016-12-05 10:00 pm".to_time.in_time_zone("UTC) 
=> 2016-12-06 05:00:00 UTC# this is the correct utc time 

jedoch auf meine Produktionsstätte, es eine falsche Zeit zurückgibt.

"2016-12-05 10:00 pm".to_time.in_time_zone("UTC) 
=> 2016-12-05 22:00:00 UTC# this is incorrect 

Nicht sicher, wie das möglich ist. UTC sollte UTC unabhängig sein. Jede Hilfe zu verstehen, warum dies geschieht, wäre großartig.

Antwort

4

Sie müssen der Software sagen, in welcher Zeitzone Sie von, nicht nur - konvertieren. Da Sie dies nicht tun, wird davon ausgegangen, dass es von der Systemzeit in UTC konvertieren soll. Wie es scheint, scheint es, dass die Systemuhr auf Ihrem Produktionsserver bereits in UTC ist, so ändert sich die Zeit überhaupt nicht.

Da Sie in UTC-7 zu sein scheinen, ich vermute, Sie an der Westküste der Vereinigten Staaten sind, so dass Sie möglicherweise Code verwenden:

ActiveSupport::TimeZone['America/Los_Angeles'].parse("2016-12-05 10:00 pm").utc