Преобразование UTC в местное время в Rails 3

У меня проблемы с преобразованием UTC Time или TimeWithZone в местное время в Rails 3.

Скажем, момент - это некоторая переменная времени в формате UTC (например, moment = Time.now.utc ). Как мне преобразовать момент в мой часовой пояс, заботясь о DST (т.е. используя EST / EDT)?

Точнее, я хотел бы распечатать «Понедельник 14 марта, 9 утра», если время соответствует 9 утра по восточному времени и «понедельник, 7 марта, 9 утра», если в прошлый понедельник было 9 утра по восточному стандартному времени.

Надеюсь, есть другой способ?

Изменить : Сначала я подумал , что «EDT» должен быть признанным часовым поясом, но «EDT» не является фактическим часовым поясом, больше похоже на состояние часового пояса. Например, не имеет смысла запрашивать Time.utc (2011,1,1) .in_time_zone ("EDT") . Это немного сбивает с толку, так как "EST" - это фактический часовой пояс, используемый в нескольких местах, где не используется летнее время, и действует (UTC-5) год.

91
задан Marc-André Lafortune 16 February 2012 в 22:23
поделиться