2010-12-07 25 views
6

J'ai un code Ruby qui ressemble vaguement à ceci.L'analyse par date/heure ne fonctionne pas comme prévu

str = 2010-12-02_12-10-26 
puts str 
puts DateTime.parse(str, "%Y-%m-%d_%H-%M-%S") 

Je m'attendais à obtenir l'heure réelle à partir de l'analyse. Au lieu de cela, je suis en train de sortie comme ça ...

2010-12-02_12-10-26 
2010-12-02T00:00:00+00:00 

Comment puis-je obtenir le temps analysé en tant que bien?

Répondre

13

Cela fonctionne:

str = "2010-12-02_12-10-26" 
puts str 
puts DateTime.strptime(str, "%Y-%m-%d_%H-%M-%S") 

Cet exemple sur Codepad.

Selon le documentationparse:

Créer un nouvel objet DateTime par l'analyse syntaxique d'une chaîne, sans spécifier le format.

Et strptime:

Créer un nouvel objet DateTime par l'analyse syntaxique d'une chaîne selon un format spécifié.

1

Utilisation strptime au lieu de Parse

puts DateTime.strptime(str, "%Y-%m-%d_%H-%M-%S")