2013-07-22 128 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