将时间121.419419转换为可读分钟/秒

Sun*_*une 6 powershell time

我想计算我的脚本运行的时间,但是get-date的结果是以秒为单位.

如何将此转换为31:14:12 behing hours:minutes:seconds?

Sha*_*evy 13

PS> $ts = New-TimeSpan -Seconds 1234567
PS> '{0:00}:{1:00}:{2:00}' -f $ts.Hours,$ts.Minutes,$ts.Seconds
06:56:07
Run Code Online (Sandbox Code Playgroud)

要么

PS> "$ts" -replace '^\d+?\.'
06:56:07
Run Code Online (Sandbox Code Playgroud)

  • 是的,基本上你得到开始和结束日期并减去另一个表格,结果是一个时间跨度对象,你可以使用-f运算符格式化(例如$ timespan = $ start- $ end;'{0:00}:{ 1:00}:{2:00}' - f $ ts.Hours,$ ts.Minutes,$ ts.Seconds). (2认同)

man*_*lds 8

您所要做的就是使用Measure-Commandcmdlet来获取时间:

PS > measure-command { sleep 5}


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 13
Ticks             : 50137481
TotalDays         : 5.80294918981481E-05
TotalHours        : 0.00139270780555556
TotalMinutes      : 0.0835624683333333
TotalSeconds      : 5.0137481
TotalMilliseconds : 5013.7481
Run Code Online (Sandbox Code Playgroud)

上面的输出本身可能对你来说足够好,或者你可以适当地格式化它,因为Measure-Command的输出是一个TimeSpan对象.或者您可以使用ToString:

PS > (measure-command { sleep 125}).tostring()
00:02:05.0017446
Run Code Online (Sandbox Code Playgroud)