как добавить время из строки с %Y%m%d Формат %H%M%S

Другой вариант решения этой проблемы следующий:

ls | tee Out_File.txt
0
21.01.2020, 07:23
2 ответа

Вы должны использовать реализацию GNU date, где это 20200101101010интерпретируется как 2020010110-10-10T00:00:00местное время.

-d— это нестандартная -опция date, поддерживаемая только несколькими реализациями и теми, где она поддерживается, если вообще нужно вводить дату (, как в GNU, busybox или ast -открыть's date; BSD dateиспользует -rи -vвместо ), это делается по-разному в разных реализациях.

ast-openи busybox dateпозволяют указать формат ввода (busybox с -D, ast -open с -p), хотя и не со смещением, насколько мне известно. Однако вы можете удалить 5 минут, преобразовав сначала в эпоху, удалить 300 секунд и преобразовать обратно в свой формат.

В июле 2019 года было предложение добавить что-то похожее на GNU date, но оно еще не выпущено (по состоянию на 2020 год -01 -21 ).

В частности, с GNU dateвы можете сначала преобразовать ввод($aaa)в формат, который он распознает, как в синтаксическом подходе @RakeshShewale ksh93.

Другим вариантом является использование оболочки zsh, которая имеет встроенную функцию анализа и форматирования временных меток -и позволяет избежать необходимости полагаться на не -переносимое поведениеdate:

zmodload zsh/datetime || exit
format=%Y%m%d%H%M%S min=60

aaa=20200101101010

strftime -r -s bbb -- "$format" "$aaa" || exit
strftime    -s bbb -- "$format" "$((bbb - 5 * min))"
print -r -- "$bbb"

Вы можете адаптировать $formatпо мере необходимости для других форматов, но обратите внимание, что не все директивы формата, поддерживаемые strftime()(, вызываются strftimeбез отметок времени -rдо формата ). strptime()(, вызванный strftime -rдля разбора временных меток ). Проверьте man 3 strftimeи man 3 strptimeв вашей системе.

1
28.01.2020, 02:38
a=20200101101010
bbb=$(date --date "${a:0:4}-${a:4:2}-${a:6:2} ${a:8:2}:${a:10:2}:${a:12:2}")
ccc=$(date -d "$bbb -5 mins" +'%Y%m%d%H%M%S')
echo $ccc

выход:

20200101100510
0
28.01.2020, 02:38

Теги

Похожие вопросы