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

DateTime.TryParseExact解析yyyy-MM-ddTHH:mm:ss格式不符合预期,无法转换日期字符串

解决DateTime.TryParseExact解析失败的问题

嘿,我一眼就看出问题所在啦——你指定的解析格式和输入字符串的格式完全对不上,这才导致TryParseExact返回false。

你的输入字符串是"20180409090001",这是无任何分隔符的紧凑格式(年份4位+月份2位+日期2位+小时2位+分钟2位+秒2位),但你传给TryParseExact的格式却是带分隔符和T的"yyyy-MM-ddTHH:mm:ss",两者结构完全不匹配,自然没法完成解析。

修正后的代码

只需要把格式字符串改成和输入匹配的"yyyyMMddHHmmss"就可以了:

using System;
using System.Globalization;

public class Program
{
    public static void Main()
    {
        DateTime sendingDateTime;
        bool parseSendingDateTime = DateTime.TryParseExact(
            "20180409090001", 
            "yyyyMMddHHmmss", 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.None, 
            out sendingDateTime);
        
        Console.WriteLine(parseSendingDateTime); // 现在会输出True
        Console.WriteLine(sendingDateTime); // 输出:4/9/2018 9:00:01 AM
    }
}

额外小提示

  • TryParseExact是严格匹配的,输入字符串的每一部分都要和格式字符串对应,包括分隔符、长度甚至大小写(比如格式里的T如果是大写,输入里也得是大写)。
  • 如果你的业务场景中输入字符串可能有多种格式,可以传入一个格式字符串数组,比如new[] {"yyyyMMddHHmmss", "yyyy-MM-ddTHH:mm:ss"},这样两种格式都能被正确解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:44:09