From: Yukihiro Matsumoto Date: 2006-08-07T23:29:14+09:00 Subject: [ruby-dev:29204] Re: [ruby-cvs:17336] ruby/lib/date: * lib/date/format.rb: specify maximum number of digits to parse まつもと ゆきひろです In message "Re: [ruby-dev:29203] Re: [ruby-cvs:17336] ruby/lib/date: * lib/date/format.rb: specify maximum number of digits to parse" on Mon, 7 Aug 2006 23:22:11 +0900, Tadayoshi Funaba writes: |> 私の考えを先に延べておくと、私は%y, %m, %dについては明示的に |> 2桁までの制約をつけたほうがよいと思いました。%Yについては |> Y10K問題を考えると躊躇するところもあるのですが、実際問題とし |> て構文解析をする場合に4桁を越える数を許すメリットよりも、 |> 20060807のような文字を解釈することができないデメリットの方が |> 大きいと思いました。 | |実際の利用のされかたを想像するとそうだと思います。 | |ただし、'%Y%m%d' を受けいれるとしても、かならずしも %Y は常に高々4桁、 |と決めなければならないわけではないように思います。 そうですね。今の作りが個々の指定子それぞれに正規表現マッチす るようになっているから4桁決め打ちにする必要があったのですか ら、_strptime全体を書き直すつもりがあれば、その必然はないで すね。 |それから、やるならば '%Y%m%d' が通ります、だけでは済まないので、 | |Date.strptime('3332006', "%j%Y') => 2006-11-29 |Date._strptime('212223', '%H%M%S') => {:hour=>21, :min=>22, :sec=>23} |Date._strptime('FebAug', "%a%b') => {:wday=>2,:mon=>8} | |など、もう少し徹底的にやることになると思います。 徹底的にやるのは(コストが見合うなら)素晴らしいことだと思いま す。上記の最後の例はちょっと納得できないんですけど。