为了验证有效日期,我使用下面的命令行:
date -d "${DATE}" "+%Y/%m/%d" > /dev/null 2>&1
它在 Cygwin 下完美运行,但在我的测试环境中却不行。 以下是有关我的测试环境的一些信息:
uname -a
AIX 152101a07e 3 5 00CDE2314C00
使用命令行:
echo $?
即使日期有效,结果始终为 1。
你知道为什么这个测试失败了吗?
最佳答案
显然,您的两个环境运行的 date
版本不同。您应该在新环境中检查 man
页面的 date
(运行 man date
)。在我的机器 (OS X) 上,-d
选项用于设置夏令时。
例如,以下对我有效:
date -j -f "%Y/%m/%d" "2014/07/09" > /dev/null 2>&1
echo $? # 0
date -j -f "%Y/%m/%d" "2014.07.09" > /dev/null 2>&1
echo $? # 1
-j
告诉它不要尝试设置我的系统日期。 -f
表示使用指定的格式。
您的可能有所不同,但您可以通过阅读手册了解详细信息。
关于linux - 在 Linux 和 AIX 上使用日期实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24653709/