显示特定日期

显示特定日期

我正在尝试使用 date 命令在 Unix 中显示特定日期,但我不知道如何显示除今天以外的日期。

例如,如果我试图显示July 4, 2011我使用

$ date +"%B %d, %Y"

但我一直以这种格式获取今天的日期。我该如何更改它以显示我想要的日期?

答案1

如果您运行的是 Linux:

date +"%B %d, %Y" -d 2011-07-04

man date:

   -d, --date=STRING
          display time described by STRING, not 'now'

答案2

一般来说,date不是用于该目的的工具(尽管某些实现,例如 GNU 日期可以将其作为非标准扩展)。

如果你想进行可移植的日期操作,你能做的最好的可能就是使用perl(它几乎安装在每个非嵌入式 Unix 上)及其POSIX模块的strftimemktime函数。还有大量其他更友好的日期操作模块,perl但默认情况下通常不会安装它们,至少在旧版本的perl.

perl -MPOSIX -le 'print strftime "%B %d, %Y", @ARGV' 0 0 0 4 7 "$((2011 - 1900))"

相关内容