From: Tadayoshi Funaba Date: 2008-05-19T21:50:29+09:00 Subject: [ruby-dev:34759] Re: Date.parse("##-##-##") >  今、 RubySpec 等で判明した非互換性について NEWS に記述を追加 > しているところなのですが、本件についてのユーザ向けの説明は次の > ような感じでいいのでしょうか。 > >  「1.9 同様、"##.##.##"は"YY.MM.DD"と解釈されるようになった。 > なお、 1.9 からは二桁の西暦年は自動で 1969-2068 に補完される > ようになるので、今のうちから Date.parse(str, true) としておく > といいよ。」 この件については、ドイツの方と少し議論して、米国式に解釈するのはあまり 意味がない、ということになって、バグではないですが、バグに近い対処とい うことにしました。 Date.parse('01.02.2003') も変っていて、dd.mm.yyyy と解釈されます。(##)?##.##.## は日本式、ただ し ##.##.#### は欧州式、ということになっています。 >  上記が正確ではない場合、書き換え方法やその説明があまりに面倒 > なら 1.8.6 の仕様に戻すことも検討したいのですが、何かよい案は > あるでしょうか。 このあたり、1.8 でも書式について少し柔軟に対応するようにしたのは、1.8 で、Time#to_s の書式があっさり変更されたことが影響していると思います (こっちのほうが影響が大きいとおもう)。さらに、1.9 で変更されていますが、 それによって、Time#to_s をつかうな、というような事があるなら、parse の ほうも考える必要があるのかもしれません。 個人的には、この件を指摘するのは親切だと思いますが、今から、 Date.parse(str, true) しろ、というのは要らないと思います。