date -d:接受的string是什么?

我正在使用“date”命令来执行一些简单的date算术。 “-d”选项可以让我这样做,但是手册页在什么是有效的数据上是非常不清楚的。 什么是所有被接受的select,我怎么知道呢?

我可以使用这个命令来确定5分钟前的date:date -d“5-minutes-ago”+%H:%M

这个命令也起作用:date -d“-5分钟”+%H:%M

我无意中偶然发现了这些选项。 我没有看到文档中列出的“分钟前”或“-X分钟”选项。

我会使用Perl来做算术,但不幸的是我不能安装任何额外的Perl软件包。

有几个相对的datestring。 minutes ago作品(与minutes-ago的破折号)。

coreutils date信息页面上有很多例子:

http://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html

您不需要安装额外的软件包来处理Perl中的datemath; 只需使用time()获得一个纪元偏移量,然后使用localtime()将其转换为有用的date数据结构。

一个棘手的问题是UNIX的时间戳格式(如果你正在pipe理一个文本文件数据库,这是很有用的 – 你想保留你的date/时间数据作为UNIX的时间戳,这样你就可以对它们执行整数运算)

 $ date +%s 1299273353 $ date -d @1299273353 Fri Mar 4 15:15:53 CST 2011 

at-sign指示date命令,该号码是UNIX时间戳