変数の日付形式

変数の日付形式

「日付」関数を使用して変数を作成し、型はyyyymmdd(20151031など)でなければなりません。また、1日を削除し(つまり、20151031が20151030になる)、bashを使用します。

ありがとうございます!

答え1

date +%Y%m%d現在の日付を印刷するために使用されます。昨日の日付を印刷する
ために使用されます(GNU)。 (FreeBSD)を使用してください。date --date '1 day ago' +%Y%m%ddate
date -v -1d +Y%m%d

答え2

bash-4.2以降にはサポートが組み込まれています(ksh93の同様の機能に触発されました):

printf -v now '%(%s)T' -1
printf '%(%Y%m%d)T\n' "$((now - 86400))"

YYYYMMDD形式で昨日の日付(86400秒前の日付)を印刷します。冬/夏時間の切り替えが発生する特定の夜間(昼の長さが23時間または25時間の場合)に実行すると、機能しなくなる可能性があります。

次の形式で作成すると、これらの特殊なケースに対してより信頼性が高くなります。

printf -v now '%(%s:%H)T' -1
printf '%(%Y%m%d)T\n' "$((${now%:*} - 3600 * (12 + ${now#*:})))"

関連情報