56 votes

Ruby : convertir une chaîne en date

En Ruby, quelle est la meilleure façon de convertir une chaîne de caractères du format : "{ 2009, 4, 15 }" à un rendez-vous ?

127voto

robinst Points 9249

Vous pouvez également utiliser Date.strptime :

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

6voto

FMc Points 22663

Une autre façon :

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

2voto

fl00r Points 41855
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

1voto

jjnevis Points 692

Le mieux que j'ai pu faire, c'est :

Date.new(*"{ 2009, 04, 15 }".delete('{').chop.split(",").map(&:to_i))

Existe-t-il un moyen plus élégant ?

0voto

Stalin Points 36

Une autre façon :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X