Powershell OneDrive LastSignInTime注册表到日期时间格式

Powershell OneDrive LastSignInTime注册表到日期时间格式,powershell,onedrive,Powershell,Onedrive,我正在尝试检查onedrive登录脚本的上次登录日期/时间,但正在努力将返回的十进制值转换为正确的日期/时间格式。不知道我是否能得到帮助 $d = (Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\OneDrive\Accounts\Business1" -Name "LastSignInTime") 当前返回以下内容,GM将其显示为TypeName:System.Int64 159466253

我正在尝试检查onedrive登录脚本的上次登录日期/时间,但正在努力将返回的十进制值转换为正确的日期/时间格式。不知道我是否能得到帮助

$d = (Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\OneDrive\Accounts\Business1" -Name "LastSignInTime")
当前返回以下内容,GM将其显示为
TypeName:System.Int64

1594662535
我尝试过各种转换类型,但并不完全知道应该如何读取,到目前为止,一切都回到了我所期望的正确状态

这个

返回

Sunday, December 31, 1600 4:02:39 PM

我是不是应该纯粹把它当作时间来阅读,而不是期待一个完整的日期,我猜reg属性的标签是Time?我想我只是对日期抱有希望,但不确定是否有办法确认它纯粹是一个时间字符串与日期/时间的对比?

似乎您收到的值实际上是unix时间刻度


我不确定您是否想要日期和时间:

[DateTime]$e = '1970-01-01 00:00:00'
$t = ([DateTime]$e.AddSeconds($d)).ToString()
或者:

$t = ([datetimeoffset]::FromUnixTimeSeconds($d).DateTime).ToString()
$t = ([DateTimeOffset]::FromUnixTimeSeconds($d).DateTime).ToString('T')
使用
[Int64]$d=1594662535
,预期可能的结果(取决于语言环境):

PS C:\Users\ATek> Write-Host $t
07/13/2020 17:48:55
PS C:\Users\ATek> Write-Host $t
17:48:55

或者仅限
时间

[DateTime]$e = '1970-01-01 00:00:00'
$t = ([DateTime]$e.AddSeconds($d)).ToString('T')
或者:

$t = ([datetimeoffset]::FromUnixTimeSeconds($d).DateTime).ToString()
$t = ([DateTimeOffset]::FromUnixTimeSeconds($d).DateTime).ToString('T')
使用
[Int64]$d=1594662535
,预期可能的结果(取决于语言环境):

PS C:\Users\ATek> Write-Host $t
07/13/2020 17:48:55
PS C:\Users\ATek> Write-Host $t
17:48:55

谢谢你,它成功了。我也因此对时间滴答声有了更好的理解。