You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell如何将OpenSSL返回的日期字符串解析为DateTime类型

正确实现

如果运行环境的默认区域为英文,可直接使用最简写法:

[datetime]::ParseExact($datestring, "MMM dd HH:mm:ss yyyy", $null)

为了兼容所有区域的运行环境,避免英文月份缩写识别失败,建议指定固定的英文区域规则:

$invariantCulture = [System.Globalization.CultureInfo]::InvariantCulture
$parsedDateTime = [datetime]::ParseExact($datestring, "MMM dd HH:mm:ss yyyy", $invariantCulture)

之前写法失败的原因

  • 第一次写法问题:
    • 格式字符串遗漏了匹配日期(原字符串中Dec后的23)的dd标识符,字符串结构和格式规则不匹配导致解析失败
    • 误用了Unix系统的日期格式标识符,.NET的ParseExact方法不支持%b这类带%前缀的格式标识
  • 第二次写法问题:
    • 英文月份缩写的匹配标识符错误,.NET中对应规则为MMM,不是bbb
    • 分钟单位的匹配标识符错误,大写MM对应月份数字,分钟需要使用小写mm
    • 四位数年份的匹配标识符错误,.NET中合法规则为小写yyyy,大写YYYY不属于标准日期匹配规则
    • 同样遗漏了日期的dd匹配符,且未指定英文区域规则,非英文系统下即使补全格式也可能无法识别Dec这类英文月份缩写

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:39:05