Date

下週一是什麼時候?

  • October 6, 2015

在我的家用電腦(Xubuntu 14.04)上,我有

zev@home:~$ 日期 +%F
2015-10-05

zev@home:~$ date +%F -d "下週一"
2015-10-12

而在工作中(Red Hat 5.11),我有

zev@work:~$ 日期 +%F
2015-10-05

zev@work:~$ date +%F -d "下週一"
2015-10-05

(請注意,今天是星期一。)我最初的猜測是該片語的不同解釋next Monday是由於系統具有不同版本的 coreutil date

zev@home:~$ 日期 --version | 頭-2
日期(GNU coreutils)8.21
版權所有 (C) 2013 Free Software Foundation, Inc.

zev@work:~$ 日期 --version | 頭-2
日期(GNU coreutils)5.97
版權所有 (C) 2006 Free Software Foundation, Inc.

我的問題是:

  • 程序版本的差異是date唯一原因,還是系統有其他因素會影響其對日期字元串的解釋?
  • 在不執行命令直接檢查的情況下,我如何知道系統是否會有一種解釋?如果影響結果的唯一因素是 的版本date,那麼根據這個 unix.SE 執行緒(X 的哪個版本引入了功能 Y?)我應該能夠在date程序的變更日誌中找到哪個版本引入了新行為,但我在這裡找不到任何類似的東西(也許我只是感到困惑)。

我做了rpm -qfl /bin/date並查看了更改日誌的文件列表,並找到/usr/share/doc/coreutils/NEWS了以下段落:

  • 7.4 版中值得注意的變化 (2009-05-07)$$ stable $$

> > Bug修復。date -d ’next mon’,在星期一執行時,現在列印未來 7 天的日期,而不是目前日期。在一周中的同一天執行時,對於任何其他一周中的某一天名稱相同。 >
> > $$ This bug appears to have been present in “the beginning”. $$ >

引用自:https://unix.stackexchange.com/questions/234167