我正在尝试捕获一些文件信息并将其存储为JSON。我遇到的问题是我最终得到了两种不同的日期序列化为JSON。
这个脚本......
cd ~
$Index = 'fileInfo.json'
$Members = 'members.txt'
$data = Get-ChildItem | Select-Object -First 1 |
Select-Object -Property CreationTime ,
@{Name="AsOf";Expression={(Get-Date) -as [datetime]}}
$data | Get-Member | Out-File $Members
$data | ConvertTo-Json | Out-File $Index
#$reloaded = cat $Index | ConvertFrom-Json
...生成此JSON
{
"CreationTime": "\/Date(1423230920315)\/",
"AsOf": {
"value": "\/Date(1504713920338)\/",
"DisplayHint": 2
}
}
两个日期,CreationTime& AsOf,显示为不同的类型:
Name MemberType Definition
---- ---------- ----------
AsOf NoteProperty System.DateTime AsOf=9/6/2017 12:21:30 PM
CreationTime NoteProperty datetime CreationTime=2/6/2015 8:55:20 AM
CreationDate(类型'datetime')以更便携的格式序列化。
有没有办法将System.dateTime强制转换为'datetime'? '-as datetime'似乎没有帮助。感谢
答案 0 :(得分:2)
我的解决方案就是这个,如果你真的希望它是C ++的日期时间而不是C#。
New-Item -ItemType Directory -Path .\test123
$Today = Get-Item -Path .\test123 | Select-Object -Property CreationTime
$Creation = Get-ChildItem | Select-Object -First 1 | Select-Object -Property CreationTime
$data = New-Object PSObject
Add-Member -type NoteProperty -Name CreationTime -InputObject $data -Value $Creation.CreationTime
Add-Member -type NoteProperty -Name AsOf -InputObject $data -Value $Today.CreationTime
Remove-Item .\test123