Powershell OneDrive LastSignInTime注册表到日期时间格式
我正在尝试检查onedrive登录脚本的上次登录日期/时间,但正在努力将返回的十进制值转换为正确的日期/时间格式。不知道我是否能得到帮助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
$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
谢谢你,它成功了。我也因此对时间滴答声有了更好的理解。