最佳答案
我有一个记录 foo
在数据库中有 :start_time
和 :timezone
属性。
例如,:start_time
是 UTC-2001-01-01 14:20:00
中的 Time。
:timezone
是一个字符串 -America/New_York
,例如。
我想创建一个值为 :start_time
但其时区由 :timezone
指定的新 Time 对象。我不想加载 :start_time
然后转换成 :timezone
,因为 Rails 会很聪明,从 UTC 更新时间,使其与该时区一致。
目前,
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
相反,我想看看
=> Sat, 01 Jan 2000 14:20:00 EST -05:00
我想做的是:
t
=> 2000-01-01 14:20:00 UTC
t.zone = "America/New_York"
=> "America/New_York"
t
=> 2000-01-01 14:20:00 EST