I have a record foo
in the database which has :start_time
and :timezone
attributes.
The :start_time
is a Time in UTC - 2001-01-01 14:20:00
, for example.
The :timezone
is a string - America/New_York
, for example.
I want to create a new Time object with the value of :start_time
but whose timezone is specified by :timezone
. I do not want to load the :start_time
and then convert to :timezone
, because Rails will be clever and update the time from UTC to be consistent with that timezone.
Currently,
t = foo.start_time
=> 2000-01-01 14:20:00 UTC
t.zone
=> "UTC"
t.in_time_zone("America/New_York")
=> Sat, 01 Jan 2000 09:20:00 EST -05:00
Instead, I want to see
=> Sat, 01 Jan 2000 14:20:00 EST -05:00
ie. I want to do:
t
=> 2000-01-01 14:20:00 UTC
t.zone = "America/New_York"
=> "America/New_York"
t
=> 2000-01-01 14:20:00 EST
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…