Ruby 具有不同日期/时间格式的ActiveRecord

Ruby 具有不同日期/时间格式的ActiveRecord,ruby,ruby-on-rails-3,datetime,activerecord,Ruby,Ruby On Rails 3,Datetime,Activerecord,我们有一个应用程序,用户可以在其中设置他/她的首选日期/时间格式。用户需要在整个应用程序中以配置的格式输入datetime。现在的问题是,对于一些格式,datetime在create/updateActiveRecord时被错误解析 例如,用户在hh:mm dd/mm/yyyy中设置了日期/时间格式。现在,如果用户输入了2012年5月4日17:00时的2012年4月5日下午5时的2012年5月4日下午5时的 1.8.7 :004 > a = Article.create!(:name =&

我们有一个应用程序,用户可以在其中设置他/她的首选日期/时间格式。用户需要在整个应用程序中以配置的格式输入
datetime
。现在的问题是,对于一些格式,
datetime
create/update
ActiveRecord
时被错误解析

例如,用户在
hh:mm dd/mm/yyyy
中设置了日期/时间格式。现在,如果用户输入了2012年5月4日17:00时的
2012年4月5日下午5时的
2012年5月4日下午5时的

1.8.7 :004 > a = Article.create!(:name => 'a1', :published_at => '17:00 04/05/2012')
 => #<Article id: 2, name: "a1", published_at: "2012-04-05 17:00:00", created_at: "2012-04-16 13:54:36", updated_at: "2012-04-16 13:54:36"> 
请任何人验证这是否是正确的方法?如果有人提出更好的方法来实现这一点,我会很感激

谢谢,
阿米特·帕特尔(Amit Patel)

我同意我提到的方法。如果有人有更好的方法,请继续分享

谢谢,Amit Patel

很好地解释了
ActiveRecord中的
字符串
如何自动转换为
日期
,Draiken回答了这个问题
1.8.7 :006 > a = Article.create!(:name => 'a1', :published_at => '17:00 15/12/2012')
 => #<Article id: 4, name: "a1", published_at: nil, created_at: "2012-04-16 13:55:43", updated_at: "2012-04-16 13:55:43"> 
class ArticlesController < ApplicationController
  before_filter :format_date_time, :only => [:create, :update]
  ...
  ...
  private
    def format_date_time
      datetime = params[:datetime]
      params[:datetime] = DateTime.strptime(datetime, pref_date_time_format).strftime('%c')
    end
end