DateTime.Parse броска строки не распознана, я не могу понять, почему - PullRequest
0 голосов
/ 13 марта 2019

Я не могу понять, почему это выдает «Строка не была распознана как действительный 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 Ответ

1 голос
/ 13 марта 2019

Массив форматов должен включать 24-часовой формат времени.

Можно использовать формат dd/MM/yyyy HH:mm ИЛИ MM/dd/yyyy HH:mm ИЛИ M/d/yyyy HH:mm ИЛИ d/M/yyyy H:m.

Обратите внимание, что только вы знаете, является ли ваш формат дд-мм-гггг или ММ-dd-yyyy как для мест даты, так и для месяца, где у вас есть 12.

Вы можете проверить примеры входных данных для своего кода, и в зависимости от них вам следует тщательно выбирать формат.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...