将字符串保存到我的数据库作为日期并有一些奇怪的结果
如果日期格式为,
dd / mm / yy它将保存
如果日期格式为,
mm / dd / yy无法以静默方式保存
如果我去,我在我的控制台中'20/10/2012'.to_date
=> Sat, 20 Oct 2012
它有效
如果我去
'10/20/2012'.to_date
=> ArgumentError: invalid date ...
它打破了
我使用初始化程序将我的默认日期格式设置为%m /%d /%Y,您可以看到它准确地反映在我的DATE_FORMATS哈希中。
Date::DATE_FORMATS
=> {:short=>"%e %b", :long=>"%B %e, %Y", :db=>"%Y-%m-%d", :number=>"%Y%m%d", :long_ordinal=>#<Proc:0x007f8663f1aae0@/Users/ian/.rvm/gems/ruby-1.9.3-p0@rails-3.2/gems/activesupport-3.2.1/lib/active_support/core_ext/date/conversions.rb:12 (lambda)>, :rfc822=>"%e %b %Y", :default=>"%m/%d/%Y"}
不确定问题的原因是什么,因为事情似乎正确配置。如何解决?
谢谢你!答案 0 :(得分:3)
尝试:
DateTime.strptime('20/10/2012', '%d/%m/%Y')
如果您不需要相关时间,请使用日期:
Date.strptime('20/10/2012', '%d/%m/%Y')
答案 1 :(得分:2)