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

J

Josh Sharpe

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!
 
B

Brian Candler

Josh said:
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: 2010-10-04 (4910947/2,0,2299161)>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,143
Latest member
SterlingLa
Top