Parse a date in rails

Sachin Prasad picture Sachin Prasad · Jul 10, 2013 · Viewed 47.6k times · Source

I have a date (Which is actually parsed from a PDF) and it could be any of the following format:

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

Is there any gem or function available in rails or ruby to parse my date? Or I need to parse it using regex?

BTW I'm using ruby on rails 3.2.

Answer

Chris Heald picture Chris Heald · Jul 10, 2013

You can try Date.parse(date_string).

You might also use Date#strptime if you need a specific format:

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

For a general solution:

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