Rails解析无效的日期错误

时间:2013-07-22 19:03:05

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我试图弄清楚为什么我会在某些日期收到invalid date错误。

例如:

这有效:

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 个答案:

答案 0 :(得分:4)

日期格式为dd / mm / yyyy。您正在尝试创建日期,即2013年第18个月的第7天。

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