在 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"