我在的格式的文本文件:如何更改文本文件中的日期格式?
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