如何在Ruby中转换部分嵌套数组?
我想知道如何将嵌套数组中包含的每个第一个元素的日期格式从YY-MM-dd转换为dd/MM/yyyy。 接下来是我尝试实现这一目标,但没有达到预期目的如何在Ruby中转换部分嵌套数组?,ruby,arrays,dictionary,nest,Ruby,Arrays,Dictionary,Nest,我想知道如何将嵌套数组中包含的每个第一个元素的日期格式从YY-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', 'con
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
}
我想知道我如何转换日期格式的每一个第一
从yyyy-MM-dd到dd/MM/yyyy的嵌套数组中包含的元素
将yyyy-MM-dd转换为dd/MM/yyyy格式:
d = "2015-03-25"
d.to_date.strftime("%d/%m/%Y")
# => "25/03/2015"
在提供的代码中,不清楚哪个变量包含日期。假设其行['REC_UPD_DATE'],您可以将其转换为所需格式,如下所示:
row['REC_UPD_DATE'].to_date.strftime("%d/%m/%Y")
什么方法无效?csv=csv.map{| csvrow |如果csvrow[0]=“rec|u upd_date”则下一个结束[csvrow[0]。到| s.slice8,2+/+csvrow[0]。到| s.slice5,2+/+csvrow[0]。到| s.slice0,4,csvrow[1],csvrow[2],csvrow[3],csvrow[4],csvrow[5],csvrow[6],csvrow[7],csvrow[8]csvrow[0]。替换|。至_.s.slice5,2+/+csvrow[0]。至_.slice0,4,csvrow[1],csvrow[2],csvrow[3],csvrow[4],csvrow[5],csvrow[6],csvrow[7]}