Kat*_*han 1 ruby timezone ruby-on-rails utc ruby-on-rails-4
我正在使用 Rails 4 尝试使用 in_time_zone 助手,但无法理解奇怪的行为。
在本地主机(或从控制台)将我的时间戳转换为 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
Run Code Online (Sandbox Code Playgroud)
但是,在我的生产站点上,它返回了不正确的时间。
"2016-12-05 10:00 pm".to_time.in_time_zone("UTC)
=> 2016-12-05 22:00:00 UTC # this is incorrect
Run Code Online (Sandbox Code Playgroud)
不知道这是怎么可能的。无论如何,UTC 应该是 UTC。任何帮助理解为什么会发生这种情况都会很棒。
您需要告诉软件您要从哪个时区转换,而不仅仅是转换到。由于您不这样做,它假定它应该从系统时间转换为 UTC。碰巧的是,您的生产服务器上的系统时钟似乎已经是 UTC,因此它根本不会更改时间。
由于您似乎在 UTC-7,我猜您在美国西海岸,所以您可能会使用这样的代码:
ActiveSupport::TimeZone['America/Los_Angeles'].parse("2016-12-05 10:00 pm").utc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |