2009-11-24 55 views
0

我試圖將twitter發佈日期轉換爲datetime對象,但由於某些原因它們沒有正確轉換。如果我這樣做:在Twitter中將Twitter發佈日期轉換爲datetime

d = '12:06 AM Oct 15th' 

d = DateTime.parse(d) 

Tweet.new :body => "test", :created_at => d 

然後將日期結束了太陽11月15日0點06分00秒-0500 2009年所有時間都將和包含11月份。我完全錯過了什麼嗎?

回答

5

DateTime.parse預計傳入的字符串爲標準格式。由於您的字符串並非如此,因此您必須使用DateTime.strptime並將日期/時間的字符串表示以及相應的格式字符串傳遞給它。你的情況是這樣的應該工作:

d = DateTime.strptime '12:06 AM Oct 15th', '%H:%M %p %b %d' 

d.to_s # => "2009-10-15T00:06:00+00:00" 

您可以檢查documentation,看看每個格式方向指。

0

你也許能夠逃脫稍微重整,然後使用解析器:

s = '12:06 AM Oct 15th' 

d = DateTime.parse(s.sub(/(\w\w\w) /, '\1')) 

puts d.to_s 
# => 2009-10-15T00:06:00+00:00