Make Date#parse采用美国格式而不是EU格式

jsh*_*rpe 19 ruby date

对于1.9.2p0,Date#parse采用UE格式.如果你不相信我,请查看format.rb,line:1042.

无论如何,我怎样才能让它采用美国格式,以便:

> Date.parse("10/4/2010")
 => Mon, 04 Oct 2010
Run Code Online (Sandbox Code Playgroud)

而不是4月10日.

我试过这个:

class Date
  def _parse_eu(str,e)
    _parse_us(str,e)
  end
end
Run Code Online (Sandbox Code Playgroud)

但没有运气.还有其他想法吗?

Jas*_*son 28

Date.strptime是你想要的,但不幸的是它看起来不像文档有日期格式字符串.我得到以下工作基于谷歌搜索格式字符串:

1.9.2 > d = Date.strptime("10/4/2010", "%m/%d/%Y")
=> #<Date: 2010-10-04 (4910947/2,0,2299161)> 
1.9.2 > d.day
=> 4 
1.9.2 > d = Date.strptime("10/4/2010", "%d/%m/%Y")
=> #<Date: 2010-04-10 (4910593/2,0,2299161)> 
1.9.2 > d.day
=> 10
Run Code Online (Sandbox Code Playgroud)