如何在Ruby on Rails中允许多个日期格式用于csv文件导入?

时间:2012-10-29 21:10:58

标签: ruby-on-rails ruby ruby-on-rails-3

我的csv中有一个生日列,应该允许用户输入多种日期格式,然后通过网页导入文件。目前,该列仅设置为一种格式; :birthday => (Date.strptime(row[2], "%mm/%dd/%YY") rescue nil),。 是否可以有多种日期格式? 谢谢!

2 个答案:

答案 0 :(得分:2)

请尝试Date.parse

  

解析日期和时间的给定表示,并创建日期对象。

     

如果可选的第二个参数为true且检测到的年份在“00”到“99”范围内,则将该年份视为2位数形式并将其填满。

     

例如:

Date.parse('2001-02-03')          #=> #<Date: 2001-02-03 ...>
Date.parse('20010203')            #=> #<Date: 2001-02-03 ...>
Date.parse('3rd Feb 2001')        #=> #<Date: 2001-02-03 ...>

如果您需要更多控制,您可以随时定义自己的解析方法。

答案 1 :(得分:0)

Rails'DateTime尝试自动检测格式。它会检测以下格式:mm/dd/yydd-mm-yyyyyy-mm-ddyyyy/mm/dd

否则,您将不得不构建自己的方法,尝试使用文件中存在的格式进行不同的解析。