验证 shell 脚本中的日期(使用 BSD 日期)

Validate a date in shell script (with the BSD date)

我通常使用以下命令验证 shell 脚本中的日期:

date "+%Y-%m-%d" -d "2017-01-28" > /dev/null  2>&1
is_valid=$?

这与 GNU 日期完美配合..但不适用于 BSD 日期。 知道如何对日期的 BSD 版本做同样的事情吗?

FreeBSD date不支持-d标志,

date -f "%Y-%m-%d" -j "2017-01-28" >/dev/null 2>&1
is_valid=$?

(或)

date -f "%Y-%m-%d" -j "2017-01-28" >/dev/null 2>&1 && printf "Date validation success\n" || printf "Date validation fail\n"