如何将表示时间跨度的自定义字符串转换为另一种格式?
How to convert a custom string representing a timespan into another format?
我正在尝试创建一个函数来转换表示时间跨度的字符串(格式:aMbb.cccS
,其中 a
:分钟,bb
:秒,ccc
:milliseconds) 转换为另一种格式 (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 }
}
只需根据您的需要在您的 $result
上调用 ToString()
:
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
我正在尝试创建一个函数来转换表示时间跨度的字符串(格式:aMbb.cccS
,其中 a
:分钟,bb
:秒,ccc
:milliseconds) 转换为另一种格式 (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 }
}
只需根据您的需要在您的 $result
上调用 ToString()
:
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