在rails中解析日期

时间:2013-07-10 05:30:25

标签: ruby-on-rails ruby ruby-on-rails-3 date-parsing

我有一个日期(实际上是从PDF解析的),它可以是以下任何一种格式:

MM/DD/YYYY
MM/DD/YY
M/D/YY
October 15, 2007
Oct 15, 2007 

是否有任何宝石或功能可用于rails或ruby来解析我的日期? 或者我需要使用正则表达式解析它?

BTW我在轨道3.2上使用红宝石。

2 个答案:

答案 0 :(得分:61)

您可以尝试Date.parse(date_string)

如果您需要特定格式,也可以使用Date#strptime

> Date.strptime("10/15/2013", "%m/%d/%Y")
=> Tue, 15 Oct 2013

一般解决方案:

format_str = "%m/%d/" + (date_str =~ /\d{4}/ ? "%Y" : "%y")
date = Date.parse(date_str) rescue Date.strptime(date_str, format_str)

答案 1 :(得分:6)

我发现慢性宝石很容易用于时间分析,它应该适合你。我试过你给的例子。

https://github.com/mojombo/chronic