在Powershell中比较TICKS时间

时间:2018-10-28 16:15:20

标签: powershell

我正在尝试比较两次TICKS时间,我需要将比较的精度降低一点,并通过从中删除任何多余的毫秒和滴答声,即使DateTime对象相距几毫秒(半分钟的顶部)也要相等。他们的DateTime对象(following jacubs guide)。

问题是我的第一个刻度值($ date1)是从性能计数器生成的,我无法将他再次转换回Date时间(Get-Date -Date($ date1)),得到以下错误消息: / p>

  

Get-Date:无法绑定参数“ Date”。无法转换价值   “ 636763462457113590”以键入“ System.DateTime”。错误:“字符串原为   无法识别为有效的dateTime”

这是我的脚本:

$date1 = (Get-Counter -Counter '\TimeCheck\TIME').CounterSamples[0] | Select-Object -ExpandProperty RawValue
    Get-Date $date1
    Get-Date -Date ($date1) -Millisecond 0  | Select -ExpandProperty Ticks

    $date2 = Get-Date
    $date2.Ticks
    Get-Date -Date ($date2) -Millisecond 0  | Select -ExpandProperty Ticks

    $date1 -eq $date2

此命令对我而言唯一有效的方法是,如果我自己写了TICKS时间:

PS C:> Get-Date -Date 636763462457113590
Sunday, October 28, 2018 5:57:25 PM

我做错了什么?甚至无法使用字符串。

2 个答案:

答案 0 :(得分:1)

看起来像“ Get-Date -Date($ date1)”中的$ date1不是数字的(基于错误) 尝试Get-Date -Date([int64] $ date1)或[datetime] [int64] $ date1

答案 1 :(得分:0)

这将从刻度计数转换为日期时间对象...

$Ticks = 636763462457113590
$TimeFromTicks = [datetime]$Ticks

$TimeFromTicks

output = 2018 October 28, Sunday 5:57:25 PM