小编典典

重击验证日期

linux

我正在写一个shell脚本,并且对为什么我的日期验证代码不起作用感到困惑。我针对发现的类似问题尝试了以下解决方案,但is_valid始终设置为1:

date "+%m/%d/%Y" -d "$1" 2>1 > /dev/null
//or..
date -d "2012-02-29" > /dev/null 2>&1
is_valid=$?
#always set to 1, even when given a valid date

如何正确验证日期格式?只有格式为MM / DD / YYYY的日期才有效

我也尝试了以下解决方案:Linux Bash-日期格式,但它也总是拒绝日期。


阅读 257

收藏
2020-06-07

共1个答案

小编典典

dateMac OS X随附的BSD 不支持该-d选项(或者,它-d用于完全不同的东西)。安装GNUdate,或使用以下命令验证您的输入字符串:

date -f "%Y-%m-%d" -j "2012-02-29" >/dev/null 2>&1

-f提供输入格式,并且-j告诉date您仅输出日期,而不尝试设置系统时钟。

2020-06-07