4

将字符串作为日期保存到我的数据库并产生一些奇怪的结果

如果日期格式如下,

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"}

不确定这里问题的原因是什么,因为事情似乎配置正确。如何解决?

谢谢你!

4

2 回答 2

3

尝试:

DateTime.strptime('20/10/2012', '%d/%m/%Y')

或者,如果您不需要相关时间,只需使用 Date :

Date.strptime('20/10/2012', '%d/%m/%Y')
于 2012-10-14T17:19:11.283 回答
2

使用 gem American_date

在 gem 文件中 gem 'american_date'

现在它将保存 mm/dd/yyyy 日期格式。

于 2016-06-09T09:54:59.557 回答