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

PowerShell解析含缩写星期的DateTime字符串报错问题求助

解析DateTime字符串时的格式匹配问题

这个报错的核心原因是文化区域不匹配。你在调用ParseExact时第三个参数传了$null,这时候方法会使用当前PowerShell会话的默认系统文化——如果你的系统默认不是英文文化(比如中文环境),那ddd(星期缩写)和MMM(月份缩写)对应的是中文的缩写(比如"周一"、"四月"),自然匹配不上字符串里的英文缩写"Mon"和"Apr"。

举个简单的例子:如果你的系统是中文文化,当你用ddd作为格式符时,它会期望字符串里是中文的星期简称,而不是英文的"Mon",这就导致了格式不匹配,抛出"无法识别为有效DateTime"的错误。

而你去掉"Mon"和ddd后能成功解析,是因为剩下的日期时间部分都是数字格式,数字在大多数文化区域里的解析规则是一致的,不需要依赖特定的文化缩写,所以能正常工作。

解决这个问题很简单,只需要显式指定英文文化或者不依赖系统文化的InvariantCulture即可:

方法一:指定英文文化

$test = [DateTime]::ParseExact("Mon Apr 29 14:40:03 2019", "ddd MMM dd HH:mm:ss yyyy", [System.Globalization.CultureInfo]::GetCultureInfo("en-US"))

方法二:使用InvariantCulture(推荐,适用于固定格式的字符串解析)

$test = [DateTime]::ParseExact("Mon Apr 29 14:40:03 2019", "ddd MMM dd HH:mm:ss yyyy", [System.Globalization.CultureInfo]::InvariantCulture)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:25:54