我正在使用Rails 4尝试与IN_Time_zone助手一起使用,并且无法理解怪异的行为。
将我的时间戳转换为Localhost(或从控制台)中的UTC时,一切都按预期工作:
"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
但是,在我的生产网站上,它返回不正确的时间。
"2016-12-05 10:00 pm".to_time.in_time_zone("UTC)
=> 2016-12-05 22:00:00 UTC # this is incorrect
不确定这是怎么可能的。.UTC应该是UTC。任何帮助理解为什么会发生这种情况的帮助。
您需要告诉软件您从转换到的时区,而不仅仅是。既然您没有,它假设它应该从系统时间转换为UTC。碰巧的是,您的生产服务器上的系统时钟似乎在UTC中已经已经,因此它根本不会改变时间。
由于您似乎在UTC-7中,我猜您在美国的西海岸,因此您可以使用这样的代码:
ActiveSupport::TimeZone['America/Los_Angeles'].parse("2016-12-05 10:00 pm").utc