2011-04-07 19 views

回答

5

使用Date#parse

ruby-1.9.2-p136 :008 > d = Date.parse("5 April 2011") 
=> Tue, 05 Apr 2011 
ruby-1.9.2-p136 :009 > d.class 
=> Date 
现在

你可以做的事情,如:

ruby-1.9.2-p136 :018 > d.strftime("%d-%m-%Y") 
=> "05-04-2011" 
+0

完美..银行! – 2011-04-07 18:13:15

2
>> date = Date.parse('5 april 2011') 
=> #<Date: 2011-04-05 (4911313/2,0,2299161)> 
>> date.strftime("%D") 
=> "04/05/11" 
0

如果你不信任Date.parse神奇地得到它的权利(当然,我不相信它),我建议您使用Date.strptime来精确指定它应该解析的格式:

require 'date' 
Date.strptime "5 April 2011", '%d %B %Y' 
#=> #<Date: 2011-04-05 (4911313/2,0,2299161)> 

用于指定格式的代码基本上与Time#strftime相同。

4

除了Date.parse这里还有Date.strptimestrftime相反:

Date.strptime('5 April 2011', '%d %B %Y') 

Date.parseDate.strptime都出奇的慢(strptime少一点左右,但仍然非常糟糕)。考虑使用home_run如果你打算做任何事情比偶尔的电话更多。 home_runDateDateTime类的直接替代品。

+0

+1指向home_run的指针。也许我们会看到Ruby将它作为当前日期/日期时间库的替代品。 – 2011-04-07 18:14:16

+0

+1为home_run,好的提示。 – 2011-04-17 01:03:14

相关问题