如何在 Sun OS 上计算日期时间的差异?



[SunOS] 如何找到日期时间的差异?

日期 1 : 2017-01-02 17:24:33 日期 2 : 2017-01-03 22:55:02

答案 : 1770 分钟

Sun OS和Solaris都不是Linux;原生date命令没有GNUdate,AFAIK的功能。在Linux上如何做到这一点可能很明显,但是如何使用POSIXdate这大约是Sun OS或Solaris支持的并不那么明显。

您应该在Unix和Linux上找到如何使用Solarisdate获取两周前的日期很有用。 它表明,如果您使用的是足够新的 Solaris 版本(我认为意味着 Solaris 11,并且不包括早期版本),那么您可以使用gdate来访问 GNUdate的功能。 然后,您可以将两个给定的日期/时间值转换为"自纪元以来的秒数",减去它们,然后除以 60 以获得时间间隔中的分钟数。

例如:

date1="2017-01-02 17:24:33"
date2="2017-01-03 22:55:02"
secs1=$(gdate -d "$date1" +'%s')
secs2=$(gdate -d "$date2" +'%s')
echo $(( ($secs2 - $secs1) / 60 ))

其输出为1770.

$(( … ))是POSIX shell算法,也由Korn shell和Bash支持。 我不知道 Solaris 11/bin/sh是否支持它。 从历史上看,那个外壳是没有支撑的伯恩外壳$( … )更不用说$(( … ))了。

如果您还没有gdate,请参阅交叉引用的问题,以获取有关可从官方 Solaris 存储库安装在 Solaris 上的可选 GNU 软件的更多信息(请参阅 Solaris 缺省安装用户工具)。