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

DateTime.ParseExact格式异常求助:无法识别指定DateTime字符串

问题

System.FormatException: 字符串'2021-03-13 11:22:54.3100000'未被识别为有效的DateTime。

抛出错误的代码:

DateTime.ParseExact(
   x.FirstOrDefault(y => y.dte == "Date")?.Value, 
  "yyyy-MM-dd HH:mm:ss", 
   CultureInfo.InvariantCulture)

请问这段代码哪里有问题?

解答
  • 核心问题是格式字符串与目标字符串不匹配:你定义的解析格式是"yyyy-MM-dd HH:mm:ss",只覆盖到秒级,但待解析的字符串包含7位毫秒后缀.3100000,格式规则不匹配导致解析失败。

  • 两种解决思路:

    1. 修正格式字符串,包含毫秒部分:
      因为你的毫秒是7位,对应格式占位符fffffff,修改后的代码如下:
      DateTime.ParseExact(
         x.FirstOrDefault(y => y.dte == "Date")?.Value, 
        "yyyy-MM-dd HH:mm:ss.fffffff", 
         CultureInfo.InvariantCulture)
      
    2. 若不需要毫秒信息,可先截断字符串再解析:
      var dateValue = x.FirstOrDefault(y => y.dte == "Date")?.Value;
      if (!string.IsNullOrEmpty(dateValue) && dateValue.Contains("."))
      {
          dateValue = dateValue.Substring(0, dateValue.IndexOf("."));
      }
      DateTime result = DateTime.ParseExact(dateValue, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:07:05