Dans Ruby / Rails, comment convertir un DateTime UTC en un autre fuseau horaire?
ruby-on-rails
ruby
datetime
runtime
Drew Johnson
la source
la source
require 'active_support/time'
abord.rake time:zones:all
. Voir aussirake -D time
. Définissez le fuseau horaire par défaut dansconfig/application.rb
.si
Time.zone
c'est votre fuseau horaire souhaité, vous pouvez utiliser@date.to_time.to_datetime
la source
En rubis uni, avec seulement
require 'date'
, utilisez lanew_offset
méthode:Testé avec ruby 2.3.7 fourni en standard sur Mac OS X 10.13.
la source
Essayez les objets TimeWithZone d' ActiveSupport manipulés avec TimeZone. ActiveSupport fournit également la méthode in_time_zone pour convertir une heure UTC en un fuseau horaire spécifié. La réponse de mckeed montre le code.
la source
Juste au cas où, si vous avez affaire à un objet ActiveRecord dans Rails.
Il peut être judicieux d'utiliser
Time.use_zone
pour un fuseau horaire par demande qui remplace le fuseau horaire par défaut défini dansconfig.time_zone
Plus de détails que j'explique à https://stackoverflow.com/a/25055692/542995
la source
J'utilise simple_form dans Rails 4 et je viens d'ajouter le champ de saisie comme
avec la migration
la source