如何在 shell 中检查 $date1 是否在 $date2 之前?

Jac*_*ack 3 shell bash date

date1=$1
date2=$2
Run Code Online (Sandbox Code Playgroud)

我怎样才能检查是否$date1是之前$date2

两个日期都是DD/MM/YY格式,即01/01/15.

Kip*_*p K 5

如果你想变得真正厚颜无耻,你总是可以根据 UTC 时间 1970-01-01 00:00:00 转换日期。

#added to fix DD/MM/YY format
input1=`echo $1 | awk -F "/" '{print $2"/"$1"/"$3}'`
input2=`echo $2 | awk -F "/" '{print $2"/"$1"/"$3}'`

date1=`date +%s --date="$input1"`
date2=`date +%s --date="$input2"`
if [[ "$date1" -lt "$date2" ]]; then
    echo "$1 earlier than $2"
else
    echo "$1 not earlier than $2"
fi
Run Code Online (Sandbox Code Playgroud)

  • 那不是厚脸皮。这是处理日期的正确方法。 (2认同)