2010-09-21 70 views
19

对于1.9.2p0,日期#解析采用UE格式。如果你不相信我,请查看format.rb,line:1042。使日期#解析采用美国格式而不是欧盟格式

不管怎么说,我怎样才能使它承担了美国的格式,使:

> Date.parse("10/4/2010") 
=> Mon, 04 Oct 2010 

而是4月10日。

我已经试过这样:

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

,但没有运气。任何其他想法?

+0

我只是比较的Ruby 1.8.7的format.rb到1.9.2的,他们都测试_parse_eu()_parse_us前()。 – 2010-09-21 03:21:20

+0

是的,更多的挖掘,它不是像“10/2/2010”这样的格式的方法 - 在_parse_ddd以及其他我还没弄明白的东西已经发生了变化。 – jsharpe 2010-09-21 04:12:10

+0

看起来像不再支持: – jsharpe 2010-09-21 04:18:33

回答

27

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 
+0

日期格式化指令是'strftime'使用的指令,可以在这里找到:http:// www .ruby-doc.org/stdlib-2.1.2/libdoc/date/rdoc/Date.html#method-i-strftime – Aupajo 2014-05-27 22:53:45

+0

看起来您在答案中提供的链接不再有效,下面是另一个链接:http:// ruby-doc.org/stdlib-1.8.7/libdoc/date/rdoc/Date.html#method-c-strptime – Tass 2016-03-21 13:23:57

+0

更新了最新文档的链接。 – Jason 2017-02-15 20:42:00