2012-05-08 68 views
1

道歉,如果標題不清楚,我不確定如何解釋清楚。如何將文本日期轉換爲Rails中的作用域日期?

在Rails應用程序中,我從第三方提供商的API中提取用戶數據。其中一個屬性是用戶的生日。

我將散列數據存儲在我的數據庫中,並且在某些情況下需要在視圖中顯示用戶的生日。

問題是生日未格式化爲日期。在哈希中,格式爲mm/dd/yyyy。這意味着我的日常範圍格式不適用於此。

鑑於我從散列數據列中提取生日如下

<%= @user.hashed_data["info"]["birthday"] %> 

什麼來處理,這樣我可以顯示本地化的日期格式的最好/最有效的方法是什麼?

是否需要拆分/符號,然後將生成的字符串重新組合爲一個日期?還是我過分複雜?

感謝您的任何建議。

+0

你/你能不能考慮在該點的字符串轉換爲合適的日期從第三方API接收它,它在你的數據庫存儲作爲這樣? – Russell

+0

會考慮它,但我要存儲完整的標記,因此提取此屬性可能相當複雜,操作它,將其放回。 jdoe的解決方案能做到這一點。 –

回答

1

嘗試:

Date.strptime('01/31/2011', '%m/%d/%Y') 
# => #<Date: 2011-01-31 (4911185/2,0,2299161)> 
+0

不錯!工作是一種享受。感謝您向我展示這一點,非常有用 –

0

將純文本轉換爲日期或日期時間的最簡單方法是使用chronic gem

您可以傳遞給慢分析器的一個非常有用的參數是:endian_precedence。有關更多詳細信息,請參閱my answer here

問候,多利安