【发布时间】:2017-10-01 16:21:34
【问题描述】:
这个问题已经困扰我一段时间了。
我取一个日期时间字符串:
[14] pry(#<EventsController>)> params[:event][:ended_at]
=> "05/31/2017 2:00 PM"
我将它转换为 DateTime 对象:
pry(#<EventsController>)> to_datetime = DateTime.strptime(params[:event][:ended_at], "%m/%d/%Y %H:%M %p")
=> Wed, 31 May 2017 14:00:00 +0000
如果我在 to_datetime 对象上运行 in_time_zone 方法,它会输出错误的太平洋时区时间:
[16] pry(#<EventsController>)> to_datetime.in_time_zone("Pacific Time (US & Canada)")
=> Wed, 31 May 2017 07:00:00 PDT -07:00
它应该读作“2:00PM”,与输入的方式相同。
如果我去 google 并检查“14:00:00 +0000”是否是 PDT 时间的正确条目,它会验证为正确:
关于它为什么不能正确转换的任何线索?
【问题讨论】:
标签: ruby-on-rails time ruby-on-rails-5