Rails: formata uma string de data e hora levando em consideração o fuso horário

Hoje tive que corrigir um teste em uma exportação CSV com datas erradas.

Nosso aplicativo Rails tem UTC como fuso horário, então as datas no banco de dados estão em UTC e precisamos mostrar as datas em nosso fuso horário.

Como exemplo, inserimos um objeto em sua tabela e o created_at é 2012-12-18 11:33:00.

Para formatar essa data em ‘% d /% m /% Y% H:% M’, fiz o seguinte:

Time.parse("2012-12-18 11:33:00").to_s(:legacy_datetime)
=> "18/12/2012 11:33"

Ops … A hora ainda está em UTC. A fim de corrigir isso, encontrei isso:

Time.parse("2012-12-18 11:33:00 +0000").to_s(:legacy_datetime)
=> "18/12/2012 12:33"

Observe a string “+0000” anexada à data.