Как создать новый объект DateTime в определенном часовом поясе (предпочтительно часовой пояс по умолчанию для моего приложения, а не в формате UTC)?
Я установил часовой пояс в/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
не работает, потому что это просто преобразует время по Гринвичу во время ФДТ, что является неправильным временем:
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)