Ruby on rails Rails 3用户界面日期选择器

Ruby on rails Rails 3用户界面日期选择器,ruby-on-rails,jquery-ui,datepicker,Ruby On Rails,Jquery Ui,Datepicker,我的rails3应用程序中有一些奇怪的行为 当我用jQueryUIDatePicker选择日期时。我在日志中看到了这一点 Parameters: {"commit"=>"Save", "log"=> {"log_date"=>"04/20/2011"} ....blah...b} AREL (1.0ms) INSERT INTO "logs" ("log_date") VALUES ('2011-04-19 22:00:00.000000') 我遗漏了不相关的信息 如您所见

我的rails3应用程序中有一些奇怪的行为

当我用jQueryUIDatePicker选择日期时。我在日志中看到了这一点

Parameters: {"commit"=>"Save", "log"=> {"log_date"=>"04/20/2011"} ....blah...b}
AREL (1.0ms)  INSERT INTO "logs" ("log_date") VALUES ('2011-04-19 22:00:00.000000')
我遗漏了不相关的信息

如您所见,Rails无法正确转换输入的日期。它将(在本例中)从4月20日更改为4月19日

当我稍后打电话时

<%= log.log_date.strftime('%d.%m.%y') %> 
日志都比预期的早了一天

在控制台中,本例中的日志如下所示

irb(main):017:0> Log.last
=> [#<Log id: 246,  log_date: "2011-04-19 22:00:00">]
irb(main):017:0>Log.last
=> [#]
因此,它将一个日期保存为“早”,但当我在视图中显示它时,它是正确的

为什么?


我可以使用getter和setter来解决这个问题吗?

Rails默认用于处理时区。存储在数据库中的时间以UTC存储,Rails应该能够自动将其转换为配置的本地时间

在application.rb文件中是否设置了
config.time\u zone
?此外,我建议尽可能使用
DateTime
而不是
Time

irb(main):017:0> Log.last
=> [#<Log id: 246,  log_date: "2011-04-19 22:00:00">]