如何使用PowerShell将当前日期计算为自1601-01-01以来的毫秒数

Max*_*Max 3 powershell ldap-query

如何使用Windows PowerShell脚本计算今天1601-01-01以来的毫秒数?我需要这个来构建正确的LDAP查询.

von*_*ryz 6

DateTime结构包含方法ToFileTime.根据文件,

Windows文件时间是64位值,表示自公元1601年1月1日午夜12点(世卫时间)协调世界时(UTC)以来经过的100纳秒间隔的数量.

因此,从ns(10e-9)到ms(10e-3)是简单的算术.请记住,计数器计数100 ns块,而不是1 ns块.该值存储为Int64,因此不需要进行类型转换.像这样,

PS C:\> (Get-Date).ToFileTime()
130142949169114886
PS C:\> (Get-Date).ToFileTime().GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Int64                                    System.ValueType
Run Code Online (Sandbox Code Playgroud)