С gnu date 5.97 вы можете сделать:
$ date -d '11-12-23 13:37'
чтобы получить то, что вы хотите, так что все, что вам нужно сделать, это помассировать ваш ввод.
Поскольку дата gnu не является вездесущей, вот быстрый скрипт на Perl, который делает то, что вы хотите:
$ echo 12-23-11 13:37 |
perl -MTime::Local -wnE '
y/-:/ /;
@F=split;
say scalar localtime timelocal( 0, $F[4], $F[3], $F[1], $F[0] - 1,$F[2]);
'
Fri Dec 23 13:37:00 2011
(Требуется perl 5.10 для -E и, скажем, но должен работать в старом perl с использованием -e и print.)