2010-09-21 89 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

相關問題