On 19 May 2011, at 10:24, Mauro wrote:

I'm inmporting a csv file and I have strings like this: "15-OTT-98", 5-GEN-96".
They are dates: OTT stands for Oct in italian and GEN stands for Jan.
How can I render those strings in valid date format?


# Note: my Italian is very rusty to non-existent, so change below where needed CUSTOM_MONTHS = [nil, "GEN", "FEB", "MAR", "APR", "MAG", "GIU", "LUG", "AGO", "SET", "OTT", "NOV", "DIC"]

def parsedatestring(datestring)
  day, monthname, year = datestring.split("-")

year = (year.to_i > Date.today.year - 2000 ? "19#{year}" : "20#{year}")

  Date.new(year.to_i, CUSTOM_MONTHS.index(monthname), day.to_i)
end

You might need to tweak the year conversion in case you have short dates that are in the future. Right now I'm assuming all dates are in the past.


Best regards

Peter De Berdt

--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to