In Ruby/Rails, come posso convertire un DateTC UTC in un altro fuso orario?Rails: convertire UTC DateTime in un altro fuso orario
risposta
time.in_time_zone(time_zone)
Esempio:
zone = ActiveSupport::TimeZone.new("Central Time (US & Canada)")
Time.now.in_time_zone(zone)
o semplicemente
Time.now.in_time_zone("Central Time (US & Canada)")
È possibile trovare i nomi dei fusi orari ActiveSupport facendo:
ActiveSupport::TimeZone.all.map(&:name)
# or for just US
ActiveSupport::TimeZone.us_zones.map(&:name)
Prova TimeWithZone oggetti di ActiveSupport MANIPUL associato a TimeZone. ActiveSupport fornisce inoltre il metodo in_time_zone per la conversione di un orario UTC in un fuso orario TimeZone specificato. La risposta di mckeed mostra il codice.
Qual è la sintassi per l'importazione di TimeWithZone nella mia classe? O lo prendo di default con Rails? –
Credo di averlo capito di default. mckeed ha il codice che ti serve, ma non lo vedrai in irb. Devi eseguirlo in Rails. – Fred
Hai ragione - grazie, Fred - viene fornito con Rails per impostazione predefinita. Stavo afferrando le cannucce, cercando di farlo funzionare in irb. –
sto usando simple_form in Rails 4 e ho appena aggiunto il campo di input come
<%= f.input :time_zone, :as => :time_zone %>
con la migrazione
class AddTimeZoneColumnToTextmessage < ActiveRecord::Migration
def change
add_column :textmessages, :time_zone, :string
end
end
Solo nel caso, se avete a che fare con l'oggetto ActiveRecord in Rails .
Potrebbe essere una buona idea di utilizzare Time.use_zone
per un secondo la richiesta fuso orario base che sostituisce il fuso orario predefinito impostato in config.time_zone
Maggiori dettagli spiego a https://stackoverflow.com/a/25055692/542995
se Time.zone
è il tuo fuso orario desiderato allora si può usare @date.to_time.to_datetime
> @date
=> Tue, 02 Sep 2014 23:59:59 +0000
> @date.class
=> DateTime
> @date.to_time
=> 2014-09-02 12:59:59 -1100
> @date.to_time.to_datetime
=> Tue, 02 Sep 2014 12:59:59 -1100
Non funziona su Rails 5 ' Time.zone # => Europa/Parigi my_date # => mer, 29 mar 2017 19:00:20 +0200 my_date.to_time # =>" 2017-03-29T17 : 00: 20.000 + 00: 00 " my_date.to_time.to_datetime # => mer, 29 mar 2017 17:00:20 +0000 ' –
- 1. momentjs convertire datetime a UTC da un altro fuso orario
- 2. Converti UTC DateTime in un altro fuso orario
- 3. Come convertire DateTime in un fuso orario specifico?
- 4. Convertire UTC DateTime a DateTimeOffset
- 5. convertire il tempo da un fuso orario all'altro in Rails
- 6. Esiste un plug-in JQuery per convertire i datetime UTC nel fuso orario dell'utente locale?
- 7. Come convertire un UTC DateTimeOffset a un DateTime che utilizza il fuso orario sistemi
- 8. Inadempiente data di fuso orario UTC per DateTime di Jodatime
- 9. Datetime Conversione fuso orario utilizzando pytz
- 10. MySQL può convertire un orario UTC memorizzato nel fuso orario locale?
- 11. conversione fuso orario Silverlight
- 12. Formato stringa su datetime con fuso orario
- 13. Convertire DateTime String a UTC in rotaie
- 14. Campo datetime Django - convertire in fuso orario in vista
- 15. Come convertire la data da un fuso orario a un altro fuso orario
- 16. Convertire la data con fuso orario noto alla data UTC
- 17. Come posso determinare un fuso orario in base all'offset UTC?
- 18. Converti oggetto datetime in un particolare fuso orario in epoca secondi in quel fuso orario
- 19. datetime a stringa con fuso orario
- 20. Come ottenere il fuso orario locale dell'utente diverso dal fuso orario del server (UTC) in python?
- 21. Rails fuso orario e l'ora legale
- 22. Convertire fuso orario locale a PST fuso orario in C#
- 23. Ottieni il fuso orario da DateTime
- 24. Mysql Datetime with Fuso orario
- 25. Javascript: Converti un oggetto UTC Date() nel fuso orario locale
- 26. C# DateTime fuso orario problemi sottrarre
- 27. Imposta il fuso orario corrente in Rails?
- 28. Come si stampa un datetime Python nel fuso orario locale?
- 29. Laravel 5 restituisce datetime con fuso orario
- 30. Formato stringa datetime predefinito con fuso orario
In IRB, quando provo Time.now.in_time_zone ('CST'), ottengo l'errore "metodo non definito 'in_time_zone'". Ci sono dei corsi di rails di cui ho bisogno per farlo funzionare? –
Quale versione di Rails stai usando? Funziona se fai Time.zone.now.in_time_zone (...)? – mckeed
Grazie mille per il codice di esempio. Questo lo ha chiarito (insieme al commento di Fred). Stavo facendo tante cose sbagliate, non posso nemmeno cominciare a spiegare :-) –