У меня есть строка в формате "yyyymmdd". Это строка в bash, и я хочу преобразовать ее в дату, чтобы на ней можно было использовать все другие функции даты.
"20121212" введите в "20121212" дату с форматом "% Y% m% d".
Ответ 1
Это сработало для меня:
date -d '20121212 7 days'
date -d '12-DEC-2012 7 days'
date -d '2012-12-12 7 days'
date -d '2012-12-12 4:10:10PM 7 days'
date -d '2012-12-12 16:10:55 7 days'
тогда вы можете форматировать выходной параметр добавления "+% Y% m% d"
Ответ 2
Мы можем использовать опцию date -d
1) Измените формат на "% Y-% m-% d" format i.e 20121212 на 2012-12-12
date -d '20121212' +'%Y-%m-%d'
2) Получить следующий или последний день с указанной даты = 20121212. Как получить дату 7 дней в прошлом с определенным форматом
date -d '20121212 -7 days' +'%Y-%m-%d'
3) Если мы получаем дату в некоторой переменной, скажем, что
dat2=$(date -d "$dat -1 days" +'%Y%m%d')
Ответ 3
дата работает только с датой GNU (обычно поставляется с Linux)
для OS X, два варианта:
команда изменения (проверена)
#!/bin/sh
#DATE=20090801204150
#date -jf "%Y%m%d%H%M%S" $DATE "+date \"%A,%_d %B %Y %H:%M:%S\""
date "Saturday, 1 August 2009 20:41:50"