When parsing user input, I first look for a parser that someone else wrote, look at writing my own parser, and then I reach for regexes. I would never use split to handle user input.
Luckily, dates and times are something that have a lot of work put into them already. DateTime is always what I first reach for, but Date::Calc has several parsing routines that would work perfectly here. Date::Manip is the other date module on CPAN that is pretty good.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?