2010-12-07 30 views
6

我有Ruby代碼,看起來像這樣隱約。DateTime解析不能按預期工作

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

我期望從解析中得到實際的時間。相反,我得到這樣的輸出...

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

我該如何獲得解析的時間?

回答

13

這工作:

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

Codepad這個例子。

按照documentationparse

創建由從字符串解析,而不指定格式的新DateTime對象。

而且strptime

通過根據指定的格式從字符串解析創建一個新的DateTime對象。

1

使用strptime而不是解析

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