Rails Ruby 时区转换
TimeZone convertion in Ruby on Rails
我是我的 application.rb 我已经设置:config.time_zone = 'Brasilia'。当我在系统中保存日期时间时就可以了。问题是我从另一个已经在正确时区的系统收到日期时间。所以,当这个日期时间保存在我的 RoR 系统上时,它被错误地保存了。示例:另一个系统发送日期时间 2015-11-10 15:07:00(已经在正确的时区,准备保存)。但是我的 RoR 将其保存为 2015-11-10 13:07:00 -0200。有没有办法告诉 Rails 这个日期时间已经在正确的时区?
您需要告诉 Rails/Ruby 传入日期时间所在的时区,使用 rake time:zones:all
查看时区列表,然后在以下代码中使用正确的时区,例如
Time.use_zone("Montevideo") { Time.zone.parse "2015-11-10 15:07:00" }
这将 return 一个设置了正确时区的 ActiveSupport::TimeWithZone
对象,然后您只需将其存储在您的数据库中,然后 Rails 会将其转换为正确的 UTC 时间.
我是我的 application.rb 我已经设置:config.time_zone = 'Brasilia'。当我在系统中保存日期时间时就可以了。问题是我从另一个已经在正确时区的系统收到日期时间。所以,当这个日期时间保存在我的 RoR 系统上时,它被错误地保存了。示例:另一个系统发送日期时间 2015-11-10 15:07:00(已经在正确的时区,准备保存)。但是我的 RoR 将其保存为 2015-11-10 13:07:00 -0200。有没有办法告诉 Rails 这个日期时间已经在正确的时区?
您需要告诉 Rails/Ruby 传入日期时间所在的时区,使用 rake time:zones:all
查看时区列表,然后在以下代码中使用正确的时区,例如
Time.use_zone("Montevideo") { Time.zone.parse "2015-11-10 15:07:00" }
这将 return 一个设置了正确时区的 ActiveSupport::TimeWithZone
对象,然后您只需将其存储在您的数据库中,然后 Rails 会将其转换为正确的 UTC 时间.