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

解析JSON日期字符串时DateTime.ParseExact报错,求问题原因及解决

问题出在自定义日期格式字符串的错误使用

你遇到的错误核心是格式字符串的占位符完全用错了,.NET的DateTime格式符是区分大小写的,每个占位符有严格的定义,下面逐个拆解你的问题:

  • 错误的DD:这个代表一年中的第几天(比如1月1日是001),而你需要的是月份中的日期,应该用小写的dd
  • 错误的YYYY:这个代表ISO周年(和普通年份可能有差异,比如跨年的周),普通年份应该用小写的yyyy
  • 错误的MI:分钟的正确占位符是小写的mm,MI不是合法的格式符
  • 错误的HH:HH是24小时制的小时(00-23),但你的字符串是12小时制带AM/PM标记,应该用小写的hh
  • 错误的直接写AM:12小时制的上午/下午标记应该用tt,它会自动匹配字符串中的AM/PM

修正后的代码

DateTime.ParseExact("11/1/2017 12:00:40 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture)

额外注意事项

如果你的日期可能出现单数字的月份/日期(比如1/5/2024),上面的格式依然有效,因为MM和dd会自动匹配1位或2位的数字;如果强制要求两位数字,那字符串里就得是01/05/2024,格式符不变。

另外,确保你的CultureInfo设置正确,这里用InvariantCulture是合适的,因为你的日期格式是美式的月/日/年。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:05:04