New-Timespan不使用“毫秒”参数,如何从毫秒创建TimeSpan?
vd8tlhqk1#
从PowerShell v7.3开始,有一个New-TimeSpan的-Milliseconds参数...
New-TimeSpan
-Milliseconds
PS> New-TimeSpan -Milliseconds 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
否则,使用TimeSpan structure的FromMilliseconds static method ...
TimeSpan
FromMilliseconds
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
TimeSpan最终将其持续时间表示为Ticks的数字,因此,如果您更愿意这样想,可以将毫秒数乘以TicksPerMillisecond constant,并将其传递给接受刻度数的构造函数(没有FromTicks()方法)...
Ticks
TicksPerMillisecond
FromTicks()
PS> New-Object -TypeName 'TimeSpan' -ArgumentList (10 * [TimeSpan]::TicksPerMillisecond) 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 PS> [TimeSpan]::new(10 * [TimeSpan]::TicksPerMillisecond) 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
4xy9mtcn2#
正值:[时间跨度]'0:0:0.001'或[时间跨度]'00:00:00:00.001'负数:[时间跨度]'-0:0:0.001'或[时间跨度]'-00:00:00:00.001'指定4或5 [int 32]个数字会被解译为(选择性地为天、)小时、分钟、秒和毫秒。有关更完整的答案,请参见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上验证)。
k4emjkb13#
10,000个刻度(整数,非浮点型或字符串型)等于1毫秒:
[timespan]10000 Days : 0 Hours : 0 Minutes : 0 Seconds : 0 Milliseconds : 1 Ticks : 10000 TotalDays : 1.15740740740741E-08 TotalHours : 2.77777777777778E-07 TotalMinutes : 1.66666666666667E-05 TotalSeconds : 0.001 TotalMilliseconds : 1
ar5n3qh54#
$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 }
4条答案
按热度按时间vd8tlhqk1#
从PowerShell v7.3开始,有一个
New-TimeSpan
的-Milliseconds
参数...否则,使用
TimeSpan
structure的FromMilliseconds
static method ...TimeSpan
最终将其持续时间表示为Ticks
的数字,因此,如果您更愿意这样想,可以将毫秒数乘以TicksPerMillisecond
constant,并将其传递给接受刻度数的构造函数(没有FromTicks()
方法)...4xy9mtcn2#
正值:[时间跨度]'0:0:0.001'或[时间跨度]'00:00:00:00.001'
负数:[时间跨度]'-0:0:0.001'或[时间跨度]'-00:00:00:00.001'
指定4或5 [int 32]个数字会被解译为(选择性地为天、)小时、分钟、秒和毫秒。
有关更完整的答案,请参见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上验证)。
k4emjkb13#
10,000个刻度(整数,非浮点型或字符串型)等于1毫秒:
ar5n3qh54#