如何将代表时间跨度的自定义字符串转换为另一种格式?

问题描述 投票:0回答:1

我正在尝试创建一个将表示时间跨度的字符串(格式:aMbb.cccS,其中a:分钟,bb:秒,ccc:毫秒)转换为另一种格式(hh:mm:ss.fff的函数)。到目前为止,我只得到一个时间跨度对象。

示例输入:2M37.526S

预期输出:00:02:37.526

我的功能:

function Convert-TimeString ([String]$Time, [String[]]$Format)
{
    $result = New-Object TimeSpan

    $convertible = [TimeSpan]::TryParseExact(
        $Time,
        $Format,
        [System.Globalization.CultureInfo]::InvariantCulture,
        [ref]$result
    )

    if ($convertible) { $result }
}
powershell date-formatting timespan
1个回答
3
投票

只需根据需要在ToString()上调用$result

function Convert-TimeString ([String]$Time, [String[]]$Format)
{
  $result = New-Object TimeSpan

  $convertible = [TimeSpan]::TryParseExact(
  $Time,
  $Format,
  [System.Globalization.CultureInfo]::InvariantCulture,
  [ref]$result)

  if ($convertible) { $result.ToString('hh\:mm\:ss\.fff') }
}

Convert-TimeString -Time '2M37.526S' -Format 'm\Mss\.fff\S'

输出:

00:02:37.526
© www.soinside.com 2019 - 2024. All rights reserved.