Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法识别DateTime.Parse字符串,我看不出原因_C#_Datetime_Format - Fatal编程技术网

C# 无法识别DateTime.Parse字符串,我看不出原因

C# 无法识别DateTime.Parse字符串,我看不出原因,c#,datetime,format,C#,Datetime,Format,我无法理解为什么会抛出“字符串未被识别为有效的日期时间” 它抛出的条目是: 格式数组应包括24小时时间格式 可以使用dd/MM/yyyyy HH:MM或MM/dd/yyyy HH:MM或M/d/yyyyy HH:MM格式 请注意,只有您知道您的格式是dd-MM-yyyy还是MM-dd-yyyy,因为您有12个日期和月份 您可以检查代码的示例输入,并根据这些输入仔细选择格式 希望这能有所帮助。那么,您应该为“12/12/2012 13:20”使用的日期格式是dd/MM/yyyy HH:MM,而且似

我无法理解为什么会抛出“字符串未被识别为有效的日期时间”

它抛出的条目是:

格式数组应包括24小时时间格式

可以使用
dd/MM/yyyyy HH:MM
MM/dd/yyyy HH:MM
M/d/yyyyy HH:MM
格式

请注意,只有您知道您的格式是dd-MM-yyyy还是MM-dd-yyyy,因为您有12个日期和月份

您可以检查代码的示例输入,并根据这些输入仔细选择格式


希望这能有所帮助。

那么,您应该为“12/12/2012 13:20”使用的日期格式是
dd/MM/yyyy HH:MM
,而且似乎
格式中缺少了它array@styx
MM/dd/yyyyy HH:MM
*请注意,
MM/dd
不是必需的,因为
M/d
将匹配一位数和两位数的天数。这同样适用于
hh
hh
mm
。我有点担心像
h:mm
这样的格式的期望值是什么,因为我们不知道它是AM还是PM。@John你怎么知道2012年12月12日是
mm/dd/yyyyy
还是
dd/mm/yyyyyy
both@styx因为OP的每一种日期格式都是mid endian。那么
M/d/yyy H:M
?同意,只要我们不知道样本输入中的一位数日期/月数是什么样子,我们就无法给出确切的答案。使用此详细信息更新答案。Thank@JohnI表示单个字符M、D、H和M模板字符同时匹配一位数和两位数。看见
        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);
    }