我已经将时区设置为/config/application.rb
,我希望我的应用程序中生成的所有时间默认都在这个时区,但当我创建一个新的DateTime
对象(使用.new
)时,它会在GMT
中创建它.我怎样才能让它位于我的应用程序的时区?
/config/application.rb
config.time_zone = 'Pacific Time (US & Canada)'
irb
irb> DateTime.now
=> Wed, 11 Jul 2012 19:04:56 -0700
irb> mydate = DateTime.new(2012, 07, 11, 20, 10, 0)
=> Wed, 11 Jul 2012 20:10:00 +0000 # GMT, but I want PDT
使用in_time_zone
不起作用,因为这只是将GMT时间转换为PDT时间,而PDT时间是错误的:
irb> mydate.in_time_zone('Pacific Time (US & Canada)')
=> Wed, 11 Jul 2012 13:10:00 PDT -07:00 # wrong time (I want 20:10)