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.
Ruby | DateTime parse() function DateTime#parse() : parse() is a DateTime class method which parses the given representation of date and time, and creates a DateTime object. Return: given representation of date and time, and creates a DateTime object.
The Parse method tries to convert the string representation of a date and time value to its DateTime equivalent. It tries to parse the input string completely without throwing a FormatException exception.
Parsing is the art of making sense of a bunch of strings and converting them into something we can understand. You could use regular expressions, but they are not always suitable for the job. For example, it is common knowledge that parsing HTML with regular expressions is probably not a good idea.
Ruby | Time strftime() function Time#strftime() is a Time class method which returns the time format according to the directives in the given format string. Syntax: Time.strftime() Parameter: Time values. Return: time format according to the directives in the given format string.
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)
I find the chronic gem very easy to use for time parsing and it should work for you. i tried the examples you gave.
https://github.com/mojombo/chronic
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With