Date#parse assume a EU format - can it assume a US format?

Before you jump to an answer here, please don’t suggest that I use
_strptime. Going that route forces my users to give me the date and/or
time in the format that I specify. Which is really not optimal.

So the problem is that Date#parse assumes that the format is
day/month/year. I would like to make it assume that it is in the US
format, month/day/year.

After digging into format.rb I tried this:

class Date
def _parse_eu(str, e)
_parse_us(str,e)
end
end

… in an attempt to skip the parse_eu method… that solution doesn’t
exactly work:

ruby-1.9.2-p0 > Date.parse(“10/04/2010”)
=> Sat, 10 Apr 2010

So, it’s still using the EU format. Any other suggestions??

Thanks!

Josh Sharpe wrote:

Before you jump to an answer here, please don’t suggest that I use
_strptime. Going that route forces my users to give me the date and/or
time in the format that I specify. Which is really not optimal.

So the problem is that Date#parse assumes that the format is
day/month/year.

It is U.S. middle-endian format in 1.8.7. But try this monkey-patch for
1.9.2:

require ‘date’
def Date._parse_sla(str, e) # :nodoc:
if str.sub!(%r|(’?-?\d+)/\s*(’?\d+)(?:\D\s*(’?-?\d+))?|, ’ ') # ’
s3e(e, $2, $1, $3)
true
end
end

Date.parse(“10/04/2010”)
=> #<Date: 2010-10-04 (4910947/2,0,2299161)>

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs