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

字符串转DateTime失败求助:部分日期解析报错原因不明

日期字符串转DateTime失败的原因及解决方法

问题原因

你用的格式字符串"M/dd/yyyy h:mm:ss tt"里,dd是两位数日期的强制占位符,要求日期部分必须是两位数字(比如08)。第一个示例中的日期是8(一位数),不符合dd的格式规则,所以转换报错;而第二个示例的日期是10(两位数),完全匹配dd的要求,因此转换成功。

解决方案

  • 调整格式字符串适配单/双位数日期:把dd改成d,d可以兼容一位或两位数的日期,修改后的代码如下:
DateTime.ParseExact("7/8/2020 3:15:07 PM", "M/d/yyyy h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture)
  • 兼容多种混合格式:如果数据库里的日期同时存在单/双位数的月、日,可以提供多个格式字符串,用DateTime.TryParseExact来覆盖所有可能的格式,示例代码:
string[] dateFormats = { "M/d/yyyy h:mm:ss tt", "M/dd/yyyy h:mm:ss tt", "MM/d/yyyy h:mm:ss tt", "MM/dd/yyyy h:mm:ss tt" };
DateTime parsedDate;
if (DateTime.TryParseExact("7/8/2020 3:15:07 PM", dateFormats, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out parsedDate))
{
    // 转换成功,使用parsedDate
}
else
{
    // 处理转换失败的逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:04:54