如何在powershell中创建毫秒级的时间跨度?

时间:2016-06-02 04:58:11

标签: powershell

New-Timespan没有" MilliSeconds"参数,如何从毫秒创建TimeSpan?

3 个答案:

答案 0 :(得分:8)

使用FromMilliseconds static methodTimeSpan structure

PS> [TimeSpan]::FromMilliseconds(10)


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 10
Ticks             : 100000
TotalDays         : 1.15740740740741E-07
TotalHours        : 2.77777777777778E-06
TotalMinutes      : 0.000166666666666667
TotalSeconds      : 0.01
TotalMilliseconds : 10

答案 1 :(得分:1)

正:[timespan]'0:0:0.001'[timespan]'00:00:00:00.001'

否定:[timespan]'-0:0:0.001'[timespan]'-00:00:00:00.001'

指定 4 或 5 个 [int32] 数字会被解释为(可选天、)小时、分钟、秒和毫秒。

要获得更完整的答案,请参阅 https://devblogs.microsoft.com/scripting/weekend-scripter-understanding-timespan-objects/ 并向下滚动到 TimeSpan 构造函数。

指定的每个时间单位必须保持在其通常的限制范围内(小时为 0-23,分钟和秒为 0-59,毫秒为 0-999)。天数范围(如果指定)是 0-10675199。

可能的最高 [timespan] 值似乎是 [timespan]'10675199:2:48:5.477'(已在 PowerShell 5.1 和 pwsh 7.1.1 上验证)。

答案 2 :(得分:0)

$Start_DateTime = Get-Date -format HH:mm:ss.fff
...... other commnads
$Finish_DateTime = Get-Date -format HH:mm:ss.fff
$TimeDiff = New-TimeSpan $Start_DateTime $Finish_DateTime 
IF ($TimeDiff.Seconds -lt 0) 
{ $Hrs = ($TimeDiff.Hours) + 23
  $Mins = ($TimeDiff.Minutes) + 59
  $Secs = ($TimeDiff.Seconds) + 59 
  $Milliseconds = ($TimeDiff.Milliseconds) + 59 
}
ELSE 
{ $Hrs = $TimeDiff.Hours
  $Mins = $TimeDiff.Minutes
  $Secs = $TimeDiff.Seconds 
  $Milliseconds = $TimeDiff.Milliseconds
}