You need to enable JavaScript to run this app. PowerShell修改JSON对象timestamp格式不生效如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell修改JSON对象timestamp格式不生效如何解决?

问题根因
  • 你的代码中存在语法错误:ForEach块内给timestamp赋值时,额外包裹的大括号{}在PowerShell中代表定义脚本块,而非执行逻辑。你实际是把未执行的脚本块对象赋值给了timestamp字段,并没有真正执行日期解析逻辑,所以原字段的值看起来没有更新。
  • 额外说明:通过ConvertFrom-Json默认转换得到的日志对象属性是可写的,直接修改属性值即可生效,无需额外重建对象或修改JSON源。
修复代码

如果你需要将timestamp转换为PowerShell的DateTime类型对象,直接去掉多余的大括号即可:

$currentLogs.logs |
Where-Object { $_.type -eq 'alert' } |
ForEach-Object {
    $_.timestamp = [datetime]::parseexact($_.timestamp, 'yyyyMMdd\THH:mm:ss', $null)
}

如果你需要输出为可读性更强的中文日期字符串,可以在解析后追加ToString方法指定格式:

$currentLogs.logs |
Where-Object { $_.type -eq 'alert' } |
ForEach-Object {
    $parsedDate = [datetime]::parseexact($_.timestamp, 'yyyyMMdd\THH:mm:ss', $null)
    $_.timestamp = $parsedDate.ToString('yyyy年MM月dd日 HH:mm:ss')
}
修改验证

执行完成后运行以下代码即可查看修改结果:

$currentLogs.logs | Select-Object timestamp, description, severity

内容的提问来源于stack exchange,提问作者Francesca Suba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 05:27:02