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

时间:2017-01-10 19:36:15

标签: shell unix sunos

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

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

答案:1770分钟

1 个答案:

答案 0 :(得分:1)

Sun OS和Solaris都不是Linux;本机date命令没有GNU date,AFAIK的功能。你可能很明显在Linux上如何做到这一点,但是如何使用POSIX date来实现它并不是那么明显,这与Sun OS或Solaris支持的大致相同。

您应该在How do I get the date from two weeks ago using Solaris date?上找到有用的Unix & Linux。它表明,如果您使用的是最新版本的Solaris(我认为是Solaris 11,并且不包括早期版本),那么您可以使用gdate访问GNU date的工具。然后,您可以将两个给定的日期/时间值转换为“自纪元以来的秒数”,减去它们,然后除以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是否支持它。从历史上看,该shell是一个Bourne shell,不支持$( … ),更不用说$(( … ))了。

如果您还没有gdate,请参阅交叉引用的问题,以获取有关可从官方Solaris存储库安装在Solaris上的可选GNU软件的更多信息(请参阅Solaris default install user tools)。 / p>