Ho questo codice che converte una matrice di stringhe di date da un formato di 17-Nov-2011 a 11/17/11 :Convertire un formato di data stringa da "17-Nov-2011" a "11/17/11"
def date_convert dates
months = { 'Jan' => 1, 'Feb' => 2, 'Mar' => 3, 'Apr' => 4,
'May' => 5, 'Jun' => 6, 'Jul' => 7, 'Aug' => 8,
'Sep' => 9, 'Oct' => 10, 'Nov' => 11, 'Dec' => 12 }
new_dates = []
dates.each do |date|
date_split = date.split('-')
month = months[date_split[1]]
day = date_split[0]
year = date_split[2][-2, 2]
new_dates.push ("#{month}/#{day}/#{year}")
end
new_dates
end
esiste un modo migliore, possibilmente integrato, per rendere questa conversione con Ruby? Sto imparando Ruby quindi qualsiasi altro approccio a questo sarebbe molto apprezzato.
di Ruby [ 'date'] (http: // www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/index.html) e ['Time'] (http://www.ruby-doc.org/stdlib-1.9.3/libdoc /time/rdoc/index.html) le librerie sono molto complete. Entrambi meritano di prendersi il tempo per sapere cosa possono fare; La data gestisce intervalli maggiori di Tempo. –
Per i casi in cui 'parse' fallisce o si confonde, si dovrebbe esplicitamente guardare [' DateTime.strptime'] (http://ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html # method-c-strptime) – Phrogz
nota: array vuoto + ciascuno + push = mappa – tokland