如何在Ruby中转换部分嵌套数组?

如何在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

我想知道如何将嵌套数组中包含的每个第一个元素的日期格式从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', '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]}