我正在尝试比较两次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
我做错了什么?甚至无法使用字符串。
答案 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