Jak utworzyć nowy obiekt DateTime w określonej strefie czasowej (najlepiej domyślnej strefie czasowej mojej aplikacji, a nie UTC)?
Ustawiłem strefę czasową w/config/application.rb
i spodziewam się, że wszystkie czasy generowane w mojej aplikacji będą domyślnie w tej strefie czasowej, ale kiedy utworzę nowyDateTime
obiekt (używając.new
), tworzy go wGMT
. Jak mogę go umieścić w strefie czasowej mojej aplikacji?
/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
Za pomocąin_time_zone
nie działa, ponieważ po prostu konwertuje czas GMT na czas PDT, który jest niewłaściwym czasem:
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)