我想以以下格式将当前日期作为字符串获取:\/Date(1411762618805)\/
我一直在使用PowerShell进行尝试,但尝试了以下操作,但是它始终用不需要的属性包装对象。我只需要value
Get-Date | ConvertTo-Json
# returns
{
"value": "\/Date(1411762618805)\/",
"DisplayHint": 2,
"DateTime": "Friday, September 26, 2014 4:16:58 PM"
}
当然,如果尝试使用
ConvertFrom-Json
转换回对象,则返回.NET Date对象。我越来越近了
Get-Date | Select-Object -Property Date | ConvertTo-Json
{
"Date": "\/Date(1411704000000)\/"
}
但是它仍然包装在Date子属性中。在一天结束时,我想要的只是一个带有Microsoft丑陋JSON格式的字符串。
如果可能的话,我只想使用内置的.NET JSON序列化程序。
最佳答案
这里有两个问题属性,DateTime和DisplayHint,都需要不同的解决方案。 DateTime属性是扩展类型系统附加的ScriptProperty,因此它自动存在于所有DateTime对象上。您可以通过Remove-TypeData
将其从当前 session 的所有DateTime对象中删除
Get-TypeData System.DateTime | Remove-TypeData
DisplayHint属性是由Get-Date cmdlet添加的NoteProperty。我知道没有办法抑制序列化。您可以从DateTime中显式删除它:
Get-Date | foreach { $_.PSObject.Properties.Remove("DisplayHint"); $_ } | ConvertTo-Json
将输出
"\/Date(1411846057456)\/"
这是当前日期和时间,如果您只想要该日期,则可以执行此操作
Get-Date | select -ExpandProperty Date | ConvertTo-Json
在这里,我们不必删除DisplayHint,因为它不是由Get-Date附加的。
甚至不必让我开始研究篮球,您就必须跳过去才能转换回正确的日期时间对象。
关于.net - 在PowerShell中将日期时间格式化为\/Date(1411704000000)\/以JSON格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26067906/