在 AIX 上不使用 date -d 进行时间戳比较

在 AIX 上不使用 date -d 进行时间戳比较

我在 AIX 7 上有一个运行数据库查询的 bash 脚本,我得到的输出是以下格式的时间戳:201607130319

现在我想将时间戳与当前时间 ( date +%Y%m%d%H%M- 201607201802) 进行比较,并检查分钟数差异。我基本上需要知道差异是否超过 10 分钟。

我知道我可以在 Linux 上使用这个功能date -d,但在 AIX 上却不行。我也不允许在服务器上安装任何东西,那么我在这里有什么选择呢?

答案1

Perl 可能已经安装,因此你可以执行

timestamp=$( some process )   # timestamp=201607130319
perl -se '
    use Time::Local;
    if ($ts =~ /^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)$/) {
        $time = timelocal(0,$5,$4,$3,$2-1,$1-1900);
        $now  = time;
        if (abs( $time - $now ) > 600) {
            print "more than 10 minutes\n";
        }
    }
' -- -ts="$timestamp"

相关内容