【问题标题】:Powershell parse duration string into secondsPowershell 将持续时间字符串解析为秒
【发布时间】:2013-04-17 03:08:31
【问题描述】:

我有一个这样的字符串:“00:02:37.6940000”。有没有一种简单的方法可以将其转换/解析为几秒钟?我是否必须将其正则表达式分成几部分并这样做?

我不在乎毫秒数。

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

    解析是[TimeSpan]类型的默认方法,所以:

    ([timespan]"00:02:37.6940000").TotalSeconds
    

    应该也可以。

    带有错误捕获:

    $input_ts = "00:02:37.6940000" 
    
    if ($input_ts -as [TimeSpan])
      {$time = ([TimeSpan]$input_ts).TotalSeconds}
    
    else {Write-Warning "Input value $input_ts not valid for timespan"}
    

    【讨论】:

    • 谢谢。完美运行。
    • 有没有办法抓住一个坏的而不让它炸毁?就像字符串是 "abc123" 或 null 什么的。
    • 更新了带有错误捕获选项的已发布脚本。您也可以使用 try/catch,但我认为这可能是矫枉过正。
    • 另一种选择是使用[TimeSpan]::TryParse()
    【解决方案2】:

    这是您可以使用的时间跨度对象的格式

    [Timespan]::Parse("00:02:37.6940000")
    

    【讨论】:

      猜你喜欢
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多