[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 缺省安装用户工具)。