Ruby / Rails - Zmień strefę czasową czasu bez zmiany wartości

Mam zapisfoo w bazie danych, która ma:start_time i:timezone atrybuty.

The:start_time jest czas w UTC -2001-01-01 14:20:00, na przykład. The:timezone jest sznurkiem -America/New_York, na przykład.

Chcę utworzyć nowy obiekt Time o wartości:start_time ale którego strefa czasowa jest określona przez:timezone. Nie chcę ładować:start_time a następnie przekonwertuj na:timezone, ponieważ Railsy będą sprytne i zaktualizują czas z UTC, aby był zgodny z tą strefą czasową.

W tej chwili,

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

questionAnswers(9)

yourAnswerToTheQuestion