W Ruby / Rails, jak przekonwertować UTC DateTime na inną strefę czasową?
ruby-on-rails
ruby
datetime
runtime
Drew Johnson
źródło
źródło
require 'active_support/time'
najpierw.rake time:zones:all
. Zobacz takżerake -D time
. Ustaw domyślną strefę czasową wconfig/application.rb
.jeśli
Time.zone
jest to Twoja żądana strefa czasowa, możesz użyć@date.to_time.to_datetime
źródło
W zwykłym rubinie, tylko z
require 'date'
użyciemnew_offset
metody:Testowano z Ruby 2.3.7, który był standardowo w systemie Mac OS X 10.13.
źródło
Wypróbuj obiekty TimeWithZone firmy ActiveSupport manipulowane za pomocą TimeZone. ActiveSupport zapewnia również metodę in_time_zone do konwersji czasu UTC na określoną strefę czasową TimeZone. Odpowiedź McKeeda pokazuje kod.
źródło
Na wszelki wypadek, jeśli masz do czynienia z obiektem ActiveRecord w Railsach.
Dobrym pomysłem może być użycie
Time.use_zone
strefy czasowej na żądanie, która zastępuje domyślną strefę czasową ustawioną wconfig.time_zone
Więcej szczegółów wyjaśniam na https://stackoverflow.com/a/25055692/542995
źródło
Używam simple_form w Rails 4 i właśnie dodałem pole wejściowe jako
z migracją
źródło