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

PowerShell中DateTime.ParseExact解析单数字月份日期报错问题

解决PowerShell解析单月份日期字符串的问题

问题根源

[DateTime]::ParseExact是严格匹配格式的:

  • MMddyyyy要求两位月份+两位日期+四位年份(总长度8位)
  • Mddyyyy要求一位月份+两位日期+四位年份(总长度7位)

如果单月份字符串是1042024(1月04日2024),理论上Mddyyyy可以匹配,但报错大概率是文化区域规则冲突,更可靠的方式是提供多格式候选让解析器尝试。

解决方案1:提供多格式候选

直接传入格式数组,覆盖双位月份和单月份的情况,解析器会自动匹配符合的格式:

# 解析单月份日期字符串
$testDateTime = [DateTime]::ParseExact("1042024", @("MMddyyyy", "Mddyyyy"), $null)
# 输出结果:1/4/2024 12:00:00 AM

如果日期部分也可能是单数字(比如142024代表1月4日2024),可以再加一个格式:

$testDateTime = [DateTime]::ParseExact("142024", @("MMddyyyy", "Mddyyyy", "Mdyyyy"), $null)

解决方案2:补全前导零统一格式

先把短字符串补前导零到8位,再用MMddyyyy解析,适合确定日期部分是两位的场景:

$dateStr = "1042024"
# 补前导零至8位,得到"01042024"
$paddedDateStr = $dateStr.PadLeft(8, '0')
$testDateTime = [DateTime]::ParseExact($paddedDateStr, "MMddyyyy", $null)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:57:25