我在的格式的文本文件:如何更改文本文件中的日期格式?
04-01-2010 13:25
Lorem Ipsum...
03-28-2010 15:21
Lorem Ipsum...
等
我要更改日期格式,使得它看起來像:
2010-04-01 13:25
Lorem Ipsum...
2010-03-28 15:21
Lorem Ipsum...
等
我遇到的問題是我不能直接傳遞一個正則表達式到一個proc,我不知道該怎麼辦。而代碼似乎沒有寫入文件。這裏是我的代碼:
def dateFix(dateLine)
dateLine = dateLine.split('-')
newDate = dateLine.slice(2), dateLine.slice(0), dateLine.slice(1)
newDate = newDate.join('-')
end
@reg = /\b\d\d-\d\d-\d\d\d\d\b/
File.open('some_file.txt', "r+") { |file|
file.each_line { |line|
date = line if line == @reg
if date
file.puts line.gsub(date, dateFix(date))
end
}
}
我可能會使用Time.parse/mktime/strftime來完成此操作 - 您可能希望查看[時間文檔](http://ruby-doc.org/core-1.9.3/Time.html) – 2012-03-07 17:24:36
使用'parse'的問題是它假定有一個'%d-%m-%Y'格式的字符串,這在美國以外是很好的,但是對於這樣的日期,我們的標準'%m-%d-%Y'作爲第二個,「03-28-2010」。沒有一個月的「28」,解析器會不斷地發牢騷.. – 2012-03-08 21:25:04