转换CSV日期时Date.parse无效,我也尝试了Date.strptime

时间:2016-03-27 21:43:46

标签: ruby csv

我发现解析这些日期几乎是不可能的

require 'csv'
require 'date'
CSV.foreach(path, :encoding => 'windows-1251:utf-8') do |row|
  bid_date = Date.parse(row[7])
end

我得到的错误是'parse': invalid date (ArgumentError)

我也尝试过Date.strptime,我得到'strptime': invalid date (ArgumentError)

我将自己的字符串转换为日期没有问题,但是当它们出现在这个CSV文件中时,我似乎无法让它工作,有什么想法吗?

如果我不解析它返回字符串如下:
2016年2月25日
2016年3月3日
2016年3月4日
2016年3月14日
2016年3月17日

1 个答案:

答案 0 :(得分:1)

02/25/2016无法解析输入日期的格式(例如Date.parse) - 您可以使用strptime来提供格式,例如

Date.strptime('02/25/2016', '%m/%d/%Y')

所以你会想要这样的东西:

CSV.foreach(path, :encoding => 'windows-1251:utf-8') do |row|
  bid_date = Date.strptime(row[7], '%m/%d/%Y')
end