ふなばです。 > 私の考えを先に延べておくと、私は%y, %m, %dについては明示的に > 2桁までの制約をつけたほうがよいと思いました。%Yについては > Y10K問題を考えると躊躇するところもあるのですが、実際問題とし > て構文解析をする場合に4桁を越える数を許すメリットよりも、 > 20060807のような文字を解釈することができないデメリットの方が > 大きいと思いました。 実際の利用のされかたを想像するとそうだと思います。 ただし、'%Y%m%d' を受けいれるとしても、かならずしも %Y は常に高々4桁、 と決めなければならないわけではないように思います。 書式のつぎの要素を見れば、 Date.strptime('20060401', '%Y%m%d') => 2006-04-01 Date.strptime('12006 04 01', '%Y %m %d') => 12005-04-01 Date.strptime('2006904901', '%Y9%m9%d') => 2005-04-01 ということもできると思います。 それから、やるならば '%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} など、もう少し徹底的にやることになると思います。