在我的家用计算机(Xubuntu 14.04)上,我有
zev@home:~$ 日期 +%F 2015-10-05 zev@home:~$ 日期 +%F -d "下周一" 2015-10-12
而在工作中(Red Hat 5.11),我有
zev@work:~$ 日期 +%F 2015-10-05 zev@work:~$ 日期 +%F -d "下周一" 2015-10-05
(请注意,今天是星期一。)我最初的猜测是,该短语的不同解释next Monday
是由于系统具有不同版本的 coreutil date
:
zev@home:~$ 日期 --version |头-2 日期(GNU coreutils)8.21 版权所有 (C) 2013 自由软件基金会, Inc. zev@work:~$ 日期 --version |头-2 日期(GNU coreutils)5.97 版权所有 (C) 2006 自由软件基金会, Inc.
我的问题是:
程序版本的差异是
date
唯一的原因,还是系统中还有其他因素会影响其对日期字符串的解释?在不运行命令直接检查的情况下,如何知道系统是否有一种解释或另一种解释?如果影响结果的唯一因素是 的版本
date
,那么根据此 unix.SE 线程(X 的哪个版本引入了功能 Y?)我应该能够在程序的变更日志中找到哪个版本引入了新行为date
,但我找不到类似的远程内容这里(也许我只是很困惑)。
答案1
我rpm -qfl /bin/date
查看了更改日志的文件列表,发现了/usr/share/doc/coreutils/NEWS
以下段落:
- 7.4 版 (2009-05-07) [稳定] 中值得注意的变化
Bug修复。 date -d 'next mon' 在星期一运行时,现在打印未来 7 天的日期而不是当前日期。当在一周的同一天运行时,对于任何其他星期几名称也是如此。 [这个bug似乎在“开始”时就已经存在了。 ]