2013-07-22 125 views
5

我試圖找出爲什麼我一直在某些日期得到invalid date錯誤。Rails解析無效的日期錯誤

例如:

這工作:

e = "07/02/2013" 
=> "07/02/2013" 
start_date = DateTime.parse(e).beginning_of_day.strftime("%Y-%d-%m %H:%M:%S") 
=> "2013-07-01 00:00:00" 
end_date = DateTime.parse(e).end_of_day.strftime("%Y-%d-%m %H:%M:%S") 
=> "2013-07-02 23:59:59" 

這將返回ArgumentError: invalid date

e = "07/18/2013" 
=> "07/18/2013" 
start_date = DateTime.parse(e).beginning_of_day.strftime("%Y-%d-%m %H:%M:%S") 
ArgumentError: invalid date 
from (irb):53:in `parse' 
end_date = DateTime.parse(e).end_of_day.strftime("%Y-%d-%m %H:%M:%S") 
ArgumentError: invalid date 
from (irb):55:in `parse' 

我使用的是相同的日期格式,在這兩種情況下。這可能是什麼原因/我需要改變以解決問題?

+1

請參閱@ErminDedovic答案。並注意在你的「7/2/2013」​​示例中,對於「%Y-%d-%m」格式,你的'strftime'輸出是「2013-07-02」,這不是你想要的(*即*,它並不真正「工作」,如你所示)。 – lurker

回答

4

日期格式爲dd/mm/yyyy。您正嘗試創建2013年第18個月的第7天的日期。

如果要定製日期格式,可以使用strptime