rails active record无法保存时区

时间:2018-03-24 11:39:12

标签: ruby-on-rails activerecord timezone

我想选择一个日期时间并通过Rails中的活动记录保存它。

此处的代码。

@match = Match.new
dating_datetime = rand(5.hours).seconds.since.to_datetime.in_time_zone(8)
@match.dating_datetime = dating_datetime
@match.save

我希望它保存在timezone(8)中,但是当我使用rails console进行检查时,我保存的值是在时区UTC' 2018-03-24 11:06:14'中,但我正处于时区8' 2018-03-24 19:06:10'

enter image description here

另外,我已经在application.rb中添加了这些内容,但没有任何改变。

config.time_zone = 'Taipei'
config.active_record.default_timezone = :local

是否可以通过Rails活动记录将带有时区的日期时间保存到表中?

1 个答案:

答案 0 :(得分:0)

正如评论中提到的@Iceman一样

日期时间始终保存在数据库中的utc中(至少在Postgres中)。 rails中的时区仅用于本地化(显示)目的。

为什么不在控制台中使用record.dating_datetime进行检查,它会在服务器配置的时区中给出日期时间。