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

如何将MM/dd/YYYY格式的日期字符串转换为DateTime对象?

解决日期字符串"11/28/2022"转DateTime的格式异常问题

问题原因

你遇到的FormatException是因为格式字符串与日期的实际格式不匹配:

  • 你的日期字符串"11/28/2022"属于月/日/年(MM/dd/yyyy)格式(对应11月28日2022年)
  • 但你使用的解析格式是"dd/MM/yyyy"(日/月/年),这会把字符串中的28识别为月份,而月份合法范围是1-12,因此触发异常。
  • 调用DateTime.Parse()报错,是因为当前系统默认的文化设置不支持自动识别这种美式日期格式。

正确的转换方法

方法1:使用ParseExact指定正确格式(推荐,格式固定时更严谨)

直接将格式字符串改为"MM/dd/yyyy",匹配日期的实际结构:

var currentStartDate = DateTime.ParseExact(
    model.StartDate,
    "MM/dd/yyyy",
    CultureInfo.InvariantCulture
);

方法2:指定美式文化解析

如果确认是美式日期格式,可以直接使用en-US文化进行解析:

var currentStartDate = DateTime.Parse(
    model.StartDate,
    new CultureInfo("en-US")
);

注意事项

  • 当日期字符串格式固定时,优先使用ParseExact,避免因系统文化设置变化导致解析失败。
  • 如果存在多种可能的格式,可以使用ParseExact的重载版本传入格式数组(比如new[] { "MM/dd/yyyy", "dd/MM/yyyy" }),但需确保格式不会产生歧义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:20:19