格式化timer.elapsed用于写入主机

问题描述 投票:0回答:1
$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 格式化日期/时间的信息,有些甚至声称可以显示或计算开始时间和结束时间之间的差异。 但在任何强制格式化的尝试中,我不断收到过载错误。

.net powershell powershell-7
1个回答
0
投票

TimeSpan
的格式字符串与
DateTime
的格式字符串有点不同。请参阅自定义 TimeSpan 格式字符串

格式字符串全部小写,需要转义

:
:

$timer.Elapsed.ToString('dd\:hh\:mm\:ss')

顺便说一句,

$timer.Stop
将为您提供方法重载定义,如果您想调用该方法,您必须向其添加
()

$timer.Stop()
© www.soinside.com 2019 - 2024. All rights reserved.