En Ruby / Rails, ¿cómo convierto una fecha y hora UTC a otra zona horaria?
ruby-on-rails
ruby
datetime
runtime
Drew Johnson
fuente
fuente
require 'active_support/time'
primero.rake time:zones:all
. También vearake -D time
. Establezca la zona horaria predeterminada enconfig/application.rb
.si
Time.zone
es su zona horaria deseada, puede usar@date.to_time.to_datetime
fuente
En rubí simple, con solo
require 'date'
, use elnew_offset
método:Probado con ruby 2.3.7 que viene de serie en Mac OS X 10.13.
fuente
Pruebe los objetos TimeWithZone de ActiveSupport manipulados con TimeZone. ActiveSupport también proporciona el método in_time_zone para convertir una hora UTC en una zona horaria específica. La respuesta de mckeed muestra el código.
fuente
Por si acaso, si se trata de un objeto ActiveRecord en Rails.
Puede ser una buena idea utilizar
Time.use_zone
una zona horaria por solicitud que anule la zona horaria predeterminada establecida enconfig.time_zone
Más detalles que explico en https://stackoverflow.com/a/25055692/542995
fuente
Estoy usando simple_form en Rails 4 y acabo de agregar el campo de entrada como
con la migración
fuente