2016-03-27 44 views
1

我發現它幾乎是不可能的解析這些日期無效Date.parse而轉換CSV日期,我想Date.strptime太

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)

我也給日期.strptime試試以及,我得到'strptime': invalid date (ArgumentError)

我沒有問題將我自己的字符串轉換爲日期,但是當他們從這個CSV文件中出來我似乎無法得到它的工作,任何想法?

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

回答

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 
+0

謝謝! @Exupery – ADL

相關問題