31

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

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

rails 或 ruby​​ 中是否有可用的 gem 或函数来解析我的日期?或者我需要使用正则表达式解析它?

顺便说一句,我在 rails 3.2 上使用 ruby​​。

4

2 回答 2

78

你可以试试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)
于 2013-07-10T05:33:45.643 回答
7

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

https://github.com/mojombo/chronic

于 2013-07-10T06:24:06.610 回答