Учитывая дату и время в формате, который не распознается date
, как я могу date
узнать дату и время?
Например:
$ date -d "09SEP2012:23:58:46"
date: invalid date `09SEP2012:23:58:46'
$ date -d "09SEP2012:23:58:46" --magic-option "ddMMMYYY:hh:mm:ss"
Sun Sep 9 23:58:46 MDT 2012
Существует --magic-option
? Если нет, есть ли более элегантный способ решить эту проблему, чем использовать sed
преобразование ввода в правильно сформированную строку даты?
Ответы:
Ни POSIX, ни GNU даты не имеют
--magic-option
. FreeBSD вызывает его-f
(с синтаксисом, похожим наdate
спецификаторы выходного формата, а не на тот, который вы предлагаете).Ваша дата очень близка к распознаванию по дате GNU: все, что требуется, это заменить двоеточие, отделяющее дату от времени пробелом.
источник
01/02/03
.Я написал набор инструментов ( dateutils ), которые работают с датами и временем более удобным для сценариев способом. Ваш магический вариант есть
--input-format|-i
, например:Хотя
dconv
напрямую не поддерживаетсяdate
формат вывода (он не присваиваетTZ
или что-либо еще в среде),strptime
в dateutils есть инструмент , который поддерживает%Z
спецификатор формата.источник