我正在尝试从csv文件中提取日期并将其转换为纪元时间
function getDesc() {
var desc = document.head.querySelector('meta[name=description]');
return desc ? desc.content : undefined;
}
我得到无效日期(ArgumentError)作为结果。但是,如果我打印出日期工具,请随机选择其中一个输出并将其粘贴到第3行的日期工具中,我会得到一个纪元值。我究竟做错了什么? dateper是字符串值,strptime减去strftime似乎给出了输出。
month.csv示例:
7/26/13 12:00:00 AM -05:00,62.2,63.02,62.07,63.02,5.00168E + 07
8/23/13 12:00:00 AM -05:00,71.84,71.93,71.36,71.6,5.55304E + 07
8/26/13 12:00:00 AM -05:00,71.56,72.91,71.52,71.87,8.26536E + 07
8/27/13 12:00:00 AM -05:00,71.16,71.81,69.49,69.82,1.058488E + 08
有人可以帮我这个吗?
答案 0 :(得分:0)
某处有一些格式错误的日期。使用rescue
可以避免脚本窒息。
CSV.foreach(File.path("month.csv")) do |row|
dateper=row[0].split(',')[0]
p DateTime.strptime(dateper,"%m/%d/%y %I:%M:%S %p %z").strftime("%s") rescue p "malformed date:#{dateper} on line #{$.}"
end
这将允许脚本继续并向您显示错误的日期。