我的csv中有一个生日列,应该允许用户输入多种日期格式,然后通过网页导入文件。目前,该列仅设置为一种格式; :birthday => (Date.strptime(row[2], "%mm/%dd/%YY") rescue nil),
。
是否可以有多种日期格式?
谢谢!
答案 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/yy
或dd-mm-yy
或yyyy-mm-dd
或yyyy/mm/dd
。
否则,您将不得不构建自己的方法,尝试使用文件中存在的格式进行不同的解析。