Transformar el tiempo en tiempo local en Ruby on Rails

Ahora mismo tengo:

Time.strftime("%I:%M%p") que me da el formato hr:min AM/PM que necesito. Sin embargo, está volviendo en UTC y lo necesito zona horaria local.

¿Cómo lo cambio a la zona horaria local y mantengo el mismo formato para la hora?

Además, recuerde que a partir de Rails 2.1, las zonas horarias son compatibles.

en su archivo config / environment.rb:

 config.time_zone = 'UTC' 

Puedes encontrar otros valores ejecutando

  rake time:zones:local 

Y Ryan Bates tiene un gran railscast: http://railscasts.com/episodes/106-time-zones-in-rails-2-1

Generalmente eso debería funcionar. Puede que tengas tu zona horaria configurada incorrectamente, sin embargo:

 Time.now.strftime("%I:%M%p") # => "12:48PM" Time.now.utc.strftime("%I:%M%p") # => "04:48PM" Time.now.utc.getlocal.strftime("%I:%M%p") # => "12:48PM" Time.now.zone # => "EDT" 

Esto puede verse afectado por la variable de entorno TZ, la configuración regional del sistema operativo o la configuración de Rails en environment.rb.