2010-12-07 36 views
6

Tengo el código de Ruby que se ve vagamente así.Parche de fecha y hora no funciona como se esperaba

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

Esperaba obtener el tiempo real del análisis. En su lugar, obtengo una salida como esta ...

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

¿Cómo puedo obtener el tiempo analizado también?

Respuesta

13

Esto funciona:

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

Este ejemplo de Codepad.

De acuerdo con la documentationparse:

Crear un nuevo objeto DateTime mediante el análisis de una cadena, sin especificar el formato.

Y strptime:

crear un nuevo objeto DateTime mediante el análisis de una cadena de acuerdo con un formato especificado.

1

Uso strptime en lugar de análisis sintáctico

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