My all time favourite has to be Date::Manip. It will essentially validate ANY date format and if you only want numeric input, then, hey, we have regexes!
Much of my code is used OUTSIDE the US, so I have to handle dates and times in all sorts of formats. So far Date::Manip is the only thing I have found that will keep me sane.