korn 中以小时为单位的 2 个时间戳之间的差异 shell

Difference between 2 timestamps in hours in korn shell

我有一个 YYYYYMMDDHHMMSS 格式的时间戳变量。使用这个变量,我需要在循环中不断检查时间是否超过 1 小时。

变量实际上是这样的格式 123-20150925084520 我需要提取第二部分作为时间戳,然后与当前时间戳进行比较以查看小时数。像 datediff($date1,$date2,"h")

这是我试过的。登录到 PUTTY 和下 username@host:[ahome/username]$ 从这个 SOPOst

下面尝试
$ echo $(( ( $(date -ud '2003-08-02 17:24:33' +'%h') - $(date -ud '2003-04-21 22:55:02' +'%h') )/60/60/24 )) days

这给出 date : illegal option --d

我没有看到 --d 选项,但我删除了 -ud 并尝试了。给出 date: bad conversion

其他选项正在实施 10 秒代码行中的复杂逻辑。像我这样的 unix 新手需要几天的时间才能理解其中的逻辑。任何快速帮助将不胜感激。

这是找到的一个简单的解决方案。

    $STARTTIME=20150925061225
    ENDTIME=$(date '+%Y%m%d%H%M%S')   #20150925090000
    TIMEDIFF=`expr $ENDTIME - $STARTTIME`
    echo $TIMEDIFF # returns 28775(2 hours)
    if [ TIMEDIFF -gt 50000 ];          # Is diff. Greater than 5 hours?