Question Ruby: convertit la chaîne à la date


Dans Ruby, quel est le meilleur moyen de convertir une chaîne du format: "{ 2009, 4, 15 }" à une date?


55
2018-04-27 11:58


origine


Réponses:


Vous pouvez aussi utiliser Date.strptime:

Date.strptime("{ 2009, 4, 15 }", "{ %Y, %m, %d }")

126
2018-04-27 12:12



Autrement:

s = "{ 2009, 4, 15 }"
d = Date.parse( s.gsub(/, */, '-') )

6
2018-04-27 12:08



def parse_date(date)
  Date.parse date.gsub(/[{}\s]/, "").gsub(",", ".")
end

date = parse_date("{ 2009, 4, 15 }")
date.day
#=> 15
date.month
#=> 4
date.year
#=> 2009

2
2018-04-27 12:17



Autrement:

Date.new(*"{ 2009, 04, 15 }".scan(/\d+/).map(&:to_i))

0
2018-01-17 10:38