Mam rekord foo
w bazie danych, który ma :start_time
i :timezone
atrybuty.
Na przykład :start_time
jest to czas UTC 2001-01-01 14:20:00
. Na przykład :timezone
jest to ciąg znaków America/New_York
.
Chcę utworzyć nowy obiekt Time z wartością, :start_time
ale którego strefa czasowa jest określona przez :timezone
. Nie chcę ładować, :start_time
a następnie konwertować do :timezone
, ponieważ Railsy będą sprytne i zaktualizują czas z UTC, aby był zgodny z tą strefą czasową.
Obecnie,
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
Zamiast tego chcę zobaczyć
=> Sat, 01 Jan 2000 14:20:00 EST -05:00
to znaczy. Chcę zrobić:
t
=> 2000-01-01 14:20:00 UTC
t.zone = "America/New_York"
=> "America/New_York"
t
=> 2000-01-01 14:20:00 EST