Rails active_record 保存 datetime 类型字段的问题

chucai · May 22, 2012 · Last by chucai replied at May 23, 2012 · 2880 hits

问题如下: 我定义了一个 Model,暂时叫做 Circle 吧,Circle 有一个属性,stime: datetime html 提交数据:

circle => { 'stime' => '"2012-05-22 23:53:24"'}

服务器端的 code

circle = Circle.new(params[:circle])

但是保存在数据库中的 stime 居然是

2012-05-22 15:53:24

修改 controller 层代码

... ...
circle.stime = DateTime.parse params['cirlce']['stime']
circle.save
... ...

保存的时间才是 正确的 这个问题是因为 activesupport 造成的,如何从根本解决这个问题?

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS

#1 楼 @lying325 我设置了时区,但是还是不行

config.active_record.default_timezone = :Beijing
config.active_record.default_timezone = :local

#3 楼 @willmouse 大善,正解

config.time_zone = 'Beijing'
config.active_record.default_timezone = :local
config.active_record.time_zone_aware_attributes = false # this is important!
You need to Sign in before reply, if you don't have an account, please Sign up first.