【问题标题】:Parsing date in Ruby在 Ruby 中解析日期
【发布时间】:2012-08-29 07:01:22
【问题描述】:

我需要一个出生日期作为 Ruby on Rails 应用程序中的纯文本。所以这是我用来做它的代码的主要部分

   if @date_of_birth_as_text.present? and Date.parse(@date_of_birth_as_text).nil?
      errors.add :date_of_birth_as_text, "cannot be parsed"
    end

所以它让一切都变得约会。看看吧,挺奇怪的

1.9.3p194 :002 > Date.parse("12 12 addd")
 => Sun, 12 Aug 2012 
1.9.3p194 :003 > Date.parse("12 12 october")
 => Fri, 12 Oct 2012 
1.9.3p194 :004 > Date.parse("12 13 october")
 => Sat, 13 Oct 2012 
1.9.3p194 :005 > Date.parse("13 13 october")
 => Sat, 13 Oct 2012 
1.9.3p194 :006 > Date.parse("13 13 2012")
 => Mon, 13 Aug 2012 
1.9.3p194 :007 > Date.parse("13 01 2012")
 => Mon, 13 Aug 2012 
1.9.3p194 :008 > Date.parse("10 01 2012")
 => Fri, 10 Aug 2012 
1.9.3p194 :009 > Date.parse("10 01 2010")
 => Fri, 10 Aug 2012 

我想稍微改变一下。我希望可以解析"MM (any delimeter or not) dd (any delimeter or not) YYYY""dd (any delimeter) MM (any delimeter) YYYY" 格式的日期。或类似的东西,但不是“12 12 add”。

我怎样才能到达它?

P.S 我看到 gem 慢性病,请不要推荐我。

【问题讨论】:

    标签: ruby-on-rails-3.2 ruby-1.9 ruby-1.9.3


    【解决方案1】:

    尝试使用 Date.strptime:

    1.9.3-p194 :017 > Date.strptime( '08-29-2012', '%m-%d-%Y' )
     => #<Date: 2012-08-29 ((2456169j,0s,0n),+0s,2299161j)> 
    

    文档:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#method-c-strptime

    【讨论】:

      猜你喜欢
      • 2012-07-21
      • 2015-07-22
      • 2016-01-01
      • 2014-02-18
      • 2013-08-13
      • 1970-01-01
      • 2016-01-05
      相关资源
      最近更新 更多