2010-06-22 54 views
1

我正嘗試創建一個包含Twitter數據+我的應用程序的流,但由於它們的時間戳以不同的方式進行了格式化,所以我在排序時遇到了麻煩。這是我的代碼:如何將日期以字符串的形式轉換爲ActiveSupport :: TimeWithZone?

answers = Answer.find(:all, :conditions => {:user_id => @user_id }, :limit => 20) 
tweets = Twitter::Search.new(params[:username]).to_a 

@feed = (answers + tweets).sort_by(&:created_at) 

these are the formats on time: 

<#Hashie::Mash created_at="Tue, 22 Jun 2010 04:41:23 +0000"... 
<Answer id:... created_at: "2010-06-15 02:13:40" 

任何幫助將不勝感激。

+0

請告訴我問題,你有?他們是不是正確排序,因爲每種類型的字符串格式都不一樣?或者你的問題是你無法讓他們以相同的格式打印出來? – DJTripleThreat 2010-06-22 19:05:11

+0

他們不打印出相同的格式,因此不能通過一起排序:created_at @feed =(answers + tweets).sort_by(&:created_at) – user250181 2010-06-22 19:08:11

回答

2

我不知道這是不是最好的辦法,但試試這個:

@feed = (answers + tweets).sort_by{ |x| DateTime.parse("#{x.created_at}") } 

編輯

反向:

@feed = (answers + tweets).sort{ |x, y| DateTime.parse("#{y.created_at}") <=> DateTime.parse("#{x.created_at}") } 
+0

真棒。這工作我只需要拋出排序反向。你知道怎麼做嗎? – user250181 2010-06-22 20:17:15

+0

我編輯了我的答案:] – 2010-06-22 20:25:44

+0

太棒了。謝謝J. – user250181 2010-06-22 20:36:07

相關問題