下周一是什么时候?

下周一是什么时候?

在我的家用计算机(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似乎在“开始”时就已经存在了。 ]

相关内容