Wie erstelle ich ein neues DateTime-Objekt in einer bestimmten Zeitzone (vorzugsweise der Standardzeitzone meiner App, nicht UTC)?
Ich habe die Zeitzone eingestellt/config/application.rb
und ich gehe davon aus, dass alle in meiner App generierten Zeiten standardmäßig in dieser Zeitzone liegen, wenn ich jedoch eine neue erstelleDateTime
Objekt (mit.new
), es schafft es inGMT
. Wie kann ich erreichen, dass es in der Zeitzone meiner App liegt?
/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
Verwendenin_time_zone
funktioniert nicht, weil dies nur die GMT-Zeit in PDT-Zeit umrechnet, was die falsche Zeit ist:
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)