2016-05-16 40 views
0

我需要將Array data2轉換爲DateTime。 字符串數據的作品。有誰知道爲什麼我會像下面那樣得到Array.to_s的錯誤?DateTime.strptime錯誤

require 'date' 

data = "May 3 07:02:34" 
puts DateTime.strptime(data, '%b %d %H:%M:%S')<br> 
puts data<br> 
puts data.class 

data2 = ["May 3 07:02:34"] 

puts data2 

puts data2.class 

puts DateTime.strptime(data2.to_s, '%b %d %H:%M:%S') 

輸出:

2016-05-03T07:02:34+00:00 
May 3 07:02:34 
String 
May 3 07:02:34 
Array 
hello.rb:13:in `strptime': invalid date (ArgumentError) 
    from hello.rb:13:in `<main>' 

回答

0

你的數組轉換爲字符串,但真的只是想在第一元素引用的字符串。改變你的電話號碼到這個:

puts DateTime.strptime(data2[0], '%b %d %H:%M:%S') 

這應該解決與strptime的問題。

使用Array#to_s將整個數組呈現爲一個字符串。在這種情況下,結果是這樣的:

"[\"May 3 07:02:34\"]" 

你想要什麼(與指數0 GOT)是這樣的:

"May 3 07:02:34" 

的區別是很重要的,這就是爲什麼它strptime哽咽。我希望有所幫助。

+0

它的工作原理。謝謝。我仍然想知道爲什麼data2.to_s錯誤。任何想法爲什麼? – Jon

+0

我更新了我的答案以解釋原因。如果您還有其他問題,請告訴我。 –

相關問題