在rails中显示的日期无效

时间:2014-11-11 09:07:00

标签: ruby-on-rails date datetime

我知道这是常见的错误,但即使在尝试了这些答案之后我也无法解决它。

通过其余的api我发送一些参数包含日期。我正在接收我想要的方法中的所有数据,但是当我尝试解析Date时,它会抛出无效日期的错误。

以下是我收到的参数

 {"uid"=>"1", "user"=>"abc.a@abc.com", "from"=>"Mon Nov 3 24:59:12 CET 2014", "to"=>"Tue Nov 11 24:59:12 CET 2014"}

和日期格式是

Mon Nov 3 24:59:12 CET 2014

但是在

下面的行解析时会出错
 fr = DateTime.parse(params[:from]) unless params[:from].empty?

我也尝试了strptime但是没有用。

Imp点是我还需要一小时才能进行后续处理。感谢

2 个答案:

答案 0 :(得分:0)

你做错了是解析DateTime而它只是日期,应该解析为以下方式之一:

1

>> fr = params[:from].to_date unless params[:from].empty?
=>  Mon, 03 Nov 2014

2

>> fr = Date.parse(params[:from]) unless params[:from].empty?
=> Mon, 03 Nov 2014

答案 1 :(得分:0)

你有24:59这是无效的时间。无论如何,使用strptime:

DateTime.strptime("Mon Nov 3 22:59:12 CET 2014", "%a %b %e %T %Z %Y")
#=> Mon, 03 Nov 2014 22:59:12 +0100