まつもと ゆきひろです
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 <tadf / dotrb.org> 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}
|
|など、もう少し徹底的にやることになると思います。
徹底的にやるのは(コストが見合うなら)素晴らしいことだと思いま
す。上記の最後の例はちょっと納得できないんですけど。