【发布时间】:2015-05-28 15:05:31
【问题描述】:
我想知道如何将嵌套数组中包含的每个第一个元素的日期格式从 yyyy-MM-dd 转换为 dd/MM/yyyy。 接下来是我试图实现这一目标的尝试,但没有达到目的。
csv_string = CSV.generate(:force_quotes => true) do |csv|
csv << ['rec_upd_date', 'pro_long_label', 'pro_short_label', 'act_label', 'stt_content', 'stt_label', 'contract_name', 'contract_no', 'accept_no']
res.each do |row|
csv << [
row['REC_UPD_DATE'],
row['PRO_LONG_LABEL'],
row['PRO_SHORT_LABEL'],
row['ACT_LABEL'],
row['STT_CONTENT'],
row['STT_LABEL'],
row['CONTRACT_NAME'],
row['CONTRACT_NO'],
row['ACCEPT_NO']
]
end
end
File.open('support_incident_statistics.csv', 'w:cp932') do |file|
# w:cp932
file.write(csv_string)
end
csv = CSV.parse(csv_string)
index = 0;
csv = csv.map{|csvrow|
if index == 0 then
next
end
"#{csvrow[0].slice(8,2)}/#{csvrow[0].slice(5,2)}/#{csvrow[0].slice(0,4)}#{csvrow[1]}#{csvrow[2]}#{csvrow[3]}#{csvrow[4]}#{csvrow[5]}#{csvrow[6]}#{csvrow[7]}}"
index = index +1
}
【问题讨论】:
-
什么方法没效果?
-
csv = csv.map{|csvrow|如果 csvrow[0] == 'rec_upd_date' 然后下一个结束 #[csvrow[0].to_s.slice(8,2) + "/" + csvrow[0].to_s.slice(5,2) + "/" + csvrow[0].to_s.slice(0,4), csvrow[1], csvrow[2], csvrow[3], csvrow[4], csvrow[5], csvrow[6], csvrow[7], csvrow[8]] csvrow.replace([csvrow[0].to_s.slice(8,2) + "/" + csvrow[0].to_s.slice(5,2) + "/" + csvrow[0] .to_s.slice(0,4),csvrow[1],csvrow[2],csvrow[3],csvrow[4],csvrow[5],csvrow[6],csvrow[7]]) }
标签: ruby arrays dictionary nest