以"HH:mm:ss,fff"格式计算字符串的总秒数

nix*_*xda 2 powershell powershell-2.0 windows-7-x64

在PowerShell V2中,我想计算给定字符串的总秒数和毫秒数.
我的字符串是00:03:56,908,所需的输出将是236.908

我的工作,但尴尬的代码是

$a = "00:03:56,908"
$a = [datetime]::ParseExact($a,"HH:mm:ss,fff",$null)
[string]($a.Hour*3600 + $a.Minute*60 + $a.Second) +"."+ [string]$a.Millisecond
Run Code Online (Sandbox Code Playgroud)

是否有更智能/更短的方法来实现这一目标?


我发现的只是TimeSpan对象的.totalseconds.但是这个代码在我的尝试中更长

Rob*_*und 8

TimeSpan早于4.0的.NET版本中的类的问题在于它不能很好地处理不同的文化或格式化字符串.鉴于你的字符串有逗号而不是句号,如果我们想要将它解析到一个时间段,我们将不得不改变它,但我认为这仍然是最好的方法.

$timeString = "00:03:56,908"
$timeStringWithPeriod = $timeString.Replace(",",".")
$timespan = [TimeSpan]::Parse($timestringWithPeriod)
$totalSeconds = $timespan.TotalSeconds
Run Code Online (Sandbox Code Playgroud)