2010-08-30 110 views

回答

103

Date.parse方法有什麼問題?

str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)" 
date = Date.parse str 
=> #<Date: 4910837/2,0,2299161> 
puts date 
2010-08-10 

它似乎工作。

這裏唯一的問題是時區。如果你想在UTC時區的時間,那麼最好是使用Time對象,假設我們有串:

str = "Tue, 10 Aug 2010 01:20:19 +0400" 
puts Date.parse str 
2010-08-10 
puts Date.parse(Time.parse(str).utc.to_s) 
2010-08-09 

我無法找到Time轉換爲Date簡單的方法。

+0

感謝KLEW和瑞安。這工作像一個魅力。我知道Date.parse,但沒有使用它。這對我來說是一個學習。 – dkris 2010-08-30 10:58:15

+1

Ruby 1.9的Time#to_date將時間轉換爲日期。 – steenslag 2010-08-30 13:58:20

12
Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z") 

應該是:在結構上

查找日期:

Date.strptime(updated, '%a, %d %b %Y %H:%M:%S %Z') 
5
str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)" 
str.to_date 
=> Tue, 10 Aug 2010 
+1

這是一個Rails的東西,而不是Ruby的東西,我認爲 – 2015-10-13 16:41:50

+0

耶只有rails只有http://apidock.com/rails/String/to_date – 2015-10-31 02:50:11