[SunOS]如何找到日期时间的差异?
日期1:2017-01-02 17:24:33 日期2:2017-01-03 22:55:02
答案:1770分钟
答案 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>