Это является олень один, как преобразовать дату какПреобразование даты в Shell
12-23-11 13:37
В чем-то вроде (секундах всегда должна быть 00)
Fri Dec 23 13:18:58 CET 2011
?
Это является олень один, как преобразовать дату какПреобразование даты в Shell
12-23-11 13:37
В чем-то вроде (секундах всегда должна быть 00)
Fri Dec 23 13:18:58 CET 2011
?
С Gnu даты 5.97, вы можете сделать:
$ date -d '11-12-23 13:37'
, чтобы получить то, что вы хотите, так что все, что вам нужно сделать, это помассируйте вход.
Поскольку гну дата не повсеместно, вот быстрый скрипт 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 и печать .)
Если это сценарий для себя, а не тот, который должен запускаться в миллионах разных сред, то в зависимости от того, какая версия date
у вас есть, вы сможете использовать ее.
Прочтите страницу руководства для вашей конкретной версии date
. Например, если это версия документированы http://ss64.com/bash/date.html, вы можете использовать --date
для входной строки и т.д.
В Mac OS X, используйте опцию -f
указать формат входного сигнала, возможность -j
так, чтобы она не попытайтесь установить дату и указав формат вывода в командной строке.
Ну, но моя дата MM-DD-YY MM: SS этот пример работает только с YY-MM-DD MM: SS –
Отсюда фраза «массаж вашего входа». –