DateTime.Parse抛出字符串无法识别,我看不到为什么

时间:2019-03-13 07:18:10

标签: c# datetime format

我不明白为什么会抛出“字符串未被识别为有效的DateTime”

        string[] formats = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
               "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss",
               "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt",
               "M/d/yyyy h:mm", "M/d/yyyy h:mm", "MM/dd/yyyy hh:mm",
               "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
               "MM/d/yyyy HH:mm:ss.ffffff" };
    var delimit = line.Split(',');
    try
    {
        id = delimit[0];
        DateTime.TryParseExact(delimit[1].Trim(),formats,new CultureInfo("en-US"),DateTimeStyles.None, out openDate);
        delimit[5] = delimit[5].Replace("\"","");
        closedDate = DateTime.ParseExact(delimit[5].Trim(),formats,new CultureInfo("en-US"),DateTimeStyles.None);
        DateTime.TryParseExact(delimit[5].Trim(),formats,new CultureInfo("en-US"),DateTimeStyles.None, out closedDate);
        severity = delimit[7].Split('-').Last().Trim();
        state = delimit[6].Trim();
    }
    catch(Exception e)
    {

        Console.WriteLine(line);
    }

它引发的条目是: enter image description here

1 个答案:

答案 0 :(得分:1)

formats数组应包括24小时制。

可以使用dd/MM/yyyy HH:mmMM/dd/yyyy HH:mmM/d/yyyy HH:mmd/M/yyyy H:m格式。

请注意,关于您拥有12位的日期和月份,只有您知道自己的格式是dd-MM-yyyy还是MM-dd-yyyyy。

您可以检查代码的示例输入,并根据您应仔细选择的格式进行选择。

希望这会有所帮助。