perl - 如何将 hh:mm:ss 转换为秒

perl - 如何将 hh:mm:ss 转换为秒

在 perl 中有没有办法将持续时间 (hh:mm:ss) 转换为总秒数?

样本:02:50:30 输出:10230

答案1

以下程序应该执行此操作:

$hhmmss="02:50:30";
@arr=split(':',$hhmmss);
$sec=@arr[2];
$sec+=@arr[1]*60;
$sec+=@arr[0]*3600;
print $sec;

答案2

$ perl -le '$t=shift;
            ($h,$m,$s) = split /:/, $t;
            print $h * 3600 + $m * 60 + $s' 02:50:30
10230

或者,没有 $t 变量也是如此:

$ perl -l -e '($h,$m,$s) = split /:/, shift;
              print $h * 3600 + $m * 60 + $s' 02:50:30
10230

答案3

使用正则表达式查找所有时间单位,然后引用它们进行数学计算:

perl -e 'print $1*3600 + $2*60 + $3 if $ARGV[0]=~/^(\d{2,}):(\d{2}):(\d{2})$/' "02:50:30"

相关内容