W Ruby/Rails, w jaki sposób mogę przekonwertować czas DateTime UTC na inną strefę czasową?Szyny: przekonwertuj UTC DateTime na inną strefę czasową
Odpowiedz
time.in_time_zone(time_zone)
Przykład:
zone = ActiveSupport::TimeZone.new("Central Time (US & Canada)")
Time.now.in_time_zone(zone)
lub po prostu
Time.now.in_time_zone("Central Time (US & Canada)")
można znaleźć nazwy stref czasowych ActiveSupport wykonując:
ActiveSupport::TimeZone.all.map(&:name)
# or for just US
ActiveSupport::TimeZone.us_zones.map(&:name)
Spróbuj ActiveSupport za TimeWithZone obiektów manipul z TimeZone. ActiveSupport udostępnia także metodę in_time_zone do konwersji czasu UTC na określoną strefę czasową TimeZone. Odpowiedź mckeeda pokazuje kod.
Jaka jest składnia importowania TimeWithZone do mojej klasy? Czy domyślnie otrzymam Rails? –
Domyślne ustawienie domyślne. mckeed ma kod, którego potrzebujesz, ale nie zobaczysz tego w irb. Musisz uruchomić go w Railsach. – Fred
Masz rację - dziękuję, Fred - domyślnie przychodzi z Railsami. Chwyciłam słomki, próbując sprawić, żeby zadziałało. –
Używam simple_form w Rails 4 i po prostu dodaje się pole wprowadzania jako
<%= f.input :time_zone, :as => :time_zone %>
z migracją
class AddTimeZoneColumnToTextmessage < ActiveRecord::Migration
def change
add_column :textmessages, :time_zone, :string
end
end
Tylko w przypadku, gdy mamy do czynienia z obiektem ActiveRecord w Rails .
To może być dobry pomysł, aby użyć Time.use_zone
dla jednej życzenie Podstawa strefy czasowej, która zastępuje domyślną strefę czasową ustawioną w config.time_zone
Więcej szczegółów wyjaśnię na https://stackoverflow.com/a/25055692/542995
jeśli Time.zone
to pożądany strefa czasowa wtedy można użyć @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
Nie działa na szynach 5 ' Time.zone # => Europa/Paryż my_date # => Środa, 29 marca 2017 19:00:20 +0200 my_date.to_time # =>" 2017-03-29T17 : 00: 20.000 + 00: 00 " my_date.to_time.to_datetime # => Środa, 29 marca 2017 17:00:20 +0000 ' –
- 1. Jak określić strefę czasową według przesunięcia UTC?
- 2. Konwersja daty na inną strefę czasową
- 3. Wymuś strefę czasową Java jako GMT/UTC
- 4. Konwertuj strefę czasową UTC w postgresql na EST (czas lokalny)
- 5. Python: Jak przekonwertować unixtimestamp i strefę czasową na obiekt datetime?
- 6. noda czas iana mapowanie Etc/UTC na strefę czasową Windows
- 7. Javascript: Konwertuj obiekt Date() UTC na lokalną strefę czasową
- 8. Jak z pytonem, wziąć datetime UTC, automatycznie wykryć strefę czasową użytkowników i przekonwertować datetime na żądany format?
- 9. Java 8 Konwertuj daną strefę czasową i czasową na czas UTC
- 10. Konwersja daty i czasu na inną strefę czasową w java
- 11. Jak uzyskać lokalną strefę czasową użytkownika inną niż strefa czasowa serwera (UTC) w pythonie?
- 12. Jak przekonwertować datetime na konkretną strefę czasową wC#?
- 13. Jak stworzyć strefę czasową Django-admin?
- 14. Dostosuj strefę czasową
- 15. Jak zachować strefę czasową podczas deserializacji DateTime przy użyciu JSON.NET?
- 16. W czasie Joda Jak przekonwertować strefę czasową bez zmiany czasu
- 17. Funkcja wykresów pand ignoruje strefę czasową timeseries
- 18. Konwertowanie datetime UTC na lokalną datę i godzinę użytkownika
- 19. Jak ustawić strefę czasową w Crashlytics?
- 20. Jak zmienić strefę czasową wartości datetime w Perlu?
- 21. Jak przekonwertować strefę czasową wartości serii Pandas
- 22. Jak mogę uzyskać strefę czasową lokalnego serwera?
- 23. Jak ustawić strefę czasową w gnuplot?
- 24. Uzyskaj strefę czasową z React Native
- 25. Jak ustawić strefę czasową na wątek?
- 26. Czas Jody podaje niewłaściwą strefę czasową
- 27. Konwertuj datę ze znaną strefą czasową na datę UTC
- 28. Jak uzyskać strefę czasową użytkownika?
- 29. Jak zmienić strefę czasową dla aplikacji asp.net
- 30. Wyodrębnij strefę czasową ze stringa
w IRB, gdy próbuję Time.now.in_time_zone ('CST'), pojawia się błąd "metoda niezdefiniowany 'in_time_zone'". Czy istnieją klasy szyn, które są mi potrzebne, aby to działało? –
Którą wersję Rails używasz? Czy to działa, jeśli robisz Time.zone.now.in_time_zone (...)? – mckeed
Dziękuję bardzo za próbkę kodu. To wyjaśniło to (wraz z komentarzem Freda). Robiłem tak wiele złych rzeczy, nie mogę nawet zacząć wyjaśniać :-) –