我的应用程序.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" }
这将返回一个设置了正确时区的ActiveSupport::TimeWithZone
对象,然后将其存储在DB中,Rails将其转换为正确的UTC时间。