Как в Ruby / Rails преобразовать DateTime в формате UTC в другой часовой пояс?
ruby-on-rails
ruby
datetime
runtime
Дрю Джонсон
источник
источник
require 'active_support/time'
первых, чтобы использовать это вне Rails .rake time:zones:all
. Также смrake -D time
. Установите часовой пояс по умолчанию в форматеconfig/application.rb
.если
Time.zone
это ваш желаемый часовой пояс, вы можете использовать@date.to_time.to_datetime
источник
В простом рубине
require 'date'
, используя толькоnew_offset
метод:Протестировано с Ruby 2.3.7, входящим в стандартную комплектацию Mac OS X 10.13.
источник
Попробуйте объекты TimeWithZone ActiveSupport, управляемые с помощью TimeZone. ActiveSupport также предоставляет метод in_time_zone для преобразования времени UTC в указанный часовой пояс TimeZone. Ответ mckeed показывает код.
источник
На всякий случай, если вы имеете дело с объектом ActiveRecord в Rails.
Было бы неплохо использовать
Time.use_zone
для каждого запроса часовой пояс, который переопределяет часовой пояс по умолчанию, установленный вconfig.time_zone
Более подробную информацию я объясню на https://stackoverflow.com/a/25055692/542995
источник
Я использую simple_form в Rails 4 и просто добавил поле ввода как
с миграцией
источник