88 votes

convertir String en DateTime

J'ai besoin d'analyser la chaîne suivante dans un objet DateTime:
30/Nov/2009:16:29:30 +0100

Y a-t-il un moyen facile de faire ceci?

PS: Je veux convertir la chaîne ci-dessus telle quelle. Le côlon après l'année n'est pas une faute de frappe. Je veux aussi résoudre le problème avec Ruby et non pas RoR.

91voto

Kaleb Brasee Points 25776

DateTime.strptime vous permet de spécifier le format et de convertir une chaîne en dateTime.

82voto

xentek Points 878

Cela ne devrait-il pas aussi fonctionner?

 "30/Nov/2009 16:29:30 +0100".to_datetime
 

42voto

Cort3z Points 1657

J'ai eu du succès avec:

 require 'time'
t = Time.parse(some_string)
 

10voto

user1425976 Points 21

Ceci convertira la chaîne de date en date / heure:

 "05/05/2012".to_time
 

5voto

Wayne Conrad Points 31052

dans Ruby 1.8, le module ParseDate convertira ce format ainsi que de nombreux autres formats de date / heure. Cependant, il ne traite pas gracieusement le côlon entre l'année et l'heure. En supposant que les deux points sont une faute de frappe et est en fait un espace, alors:

 #!/usr/bin/ruby1.8

require 'parsedate'

s = "30/Nov/2009 16:29:30 +0100"
p Time.mktime(*ParseDate.parsedate(s))    # =>  Mon Nov 30 16:29:30 -0700 2009
 

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: