$timer = [System.Diagnostics.Stopwatch]::StartNew()
Start-Sleep -Second 83
$timer.stop
$elapsed=$timer.elapsed
Write-Host $elapsed < Works, but not shown in desired format
Write-Host $elapsed.ToString("DD:HH:MM:SS") < Overload error on .ToString and Argument count:"1"
Write-Host $($elapsed).ToString("DD:HH:MM:SS") < Overload error on .ToString and Argument count:"1"
我无法以所需的格式输出经过的时间(“DD:HH:MM:SS”;2 位数字的天、小时、分钟和秒)。 我发现了很多关于直接从 Get-Date 格式化日期/时间的信息,有些甚至声称可以显示或计算开始时间和结束时间之间的差异。 但在任何强制格式化的尝试中,我不断收到过载错误。
TimeSpan
的格式字符串与 DateTime
的格式字符串有点不同。请参阅自定义 TimeSpan 格式字符串。
格式字符串全部小写,需要转义
:
:
$timer.Elapsed.ToString('dd\:hh\:mm\:ss')
顺便说一句,
$timer.Stop
将为您提供方法重载定义,如果您想调用该方法,您必须向其添加()
:
$timer.Stop()