web-dev-qa-db-fra.com

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 pas RoR.

91
SkaveRat

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

93
Kaleb Brasee

Cela ne devrait-il pas fonctionner aussi?

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

J'ai eu du succès avec:

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

J'ai utilisé Time.parse("02/07/1988"), comme certaines des autres affiches.

Un piège intéressant était que Time était chargé par défaut lorsque j'ai ouvert IRB, mais Time.parse n'était pas défini. J'ai dû require 'time' pour le faire fonctionner.

C'est avec Ruby 2.2.

15
declan

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

"05/05/2012".to_time
10
user1425976

Pour les Chinois Rails:

DateTime.strptime('2012-12-09 00:01:36', '%Y-%m-%d %H:%M:%S')
=> Sun, 09 Dec 2012 00:01:36 +0000
8

dans Ruby 1.8, le module ParseDate convertira ce format ainsi que de nombreux autres formats de date/heure. Toutefois, il ne traite pas correctement le deux-points entre l’année et l’heure. 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
5
Wayne Conrad