在bash中获取不带冒号的秒数

  • 本文关键字:bash 获取 bash time
  • 更新时间 :
  • 英文 :


我目前正在键入时间,以将其转换为秒作为HH:MM:SS:

$(date -d "1970-01-01 $element Z" +%s)

我希望能够提供没有:冒号的HHMMSS时间。但结果是一样的。换算成秒。

输入:

010000 = 60*60*1 = 3600s
004032 = 60*40+32 = 2432s

如果$element包含一个六位数的字符串,表示时间HHMMSS,您可以直接转换它:

(( s = 10#${element:0:2}*3600 + 10#${element:2:2}*60 + 10#${element:4} ))

使用参数展开来提取子字符串。

您需要在它们前面加上10#,以便bash在它们以0开头时不将它们视为八进制。

使用参数展开来提取子字符串:

seconds=$(date -d "1970-01-01 ${element:0:2}:${element:2:2}:${element:4} Z" +%s)
#                     2 chars from    2 chars from   rest of the
#                     position 0      position 2     string from 
#                                                    position 4

最新更新