ふなばさん (または akr さん?)
遠藤です。

以下の Date.parse に関する挙動の違いは 1.9 からの仕様変更でしょうか。

ML や議論のログや ChangeLog を見ればわかりそうなものですが、手間が
かかるのと理解できる自信がないのとで、聞いてしまいます。すみません。


ruby18 はすべて ruby 1.8.8dev (2010-01-26 revision 26430) [i686-linux] で、
ruby19 はすべて ruby 1.9.2dev (2010-01-28 trunk 26458) [i686-linux] です。


1) XX 年が 20XX 年と解釈されるようになったのは確定?

$ ruby18 -rdate -e 'p Date.parse("10-01-07").strftime("%Y %m %d")'
"0010 01 07"

$ ruby19 -rdate -e 'p Date.parse("10-01-07").strftime("%Y %m %d")'
"2010 01 07"


2) 月日の解釈の順序が変わったのは意図的?

$ ruby18 -rdate -e 'p Date.parse("10/01/2007").strftime("%Y %m %d")'
"2007 10 01"

$ ruby19 -rdate -e 'p Date.parse("10/01/2007").strftime("%Y %m %d")'
"2007 01 10"


3) 複合技

$ ruby18 -rdate -e 'p Date.parse("10/01/07").strftime("%Y %m %d")'
"0007 10 01"

$ ruby19 -rdate -e 'p Date.parse("10/01/07").strftime("%Y %m %d")'
"2010 01 07"


http://github.com/rubyspec/rubyspec/blob/master/library/date/shared/parse_eu.rb
http://github.com/rubyspec/rubyspec/blob/master/library/date/shared/parse_us.rb

-- 
Yusuke ENDOH <mame / tsg.ne.jp>