DateTime.TryParseExact () с массивом Format всегда возвращает false - PullRequest
0 голосов
/ 15 января 2019

После копания в SO, я до сих пор не вижу ничего о том, что здесь происходит.

 string[] Formats = new string[] { "dd MMM YYYY HH:mm:ss:fff", "YYYY-MM-dd hh:mm:ss:fff" };
                    DateTime t = new DateTime();

                    if (DateTime.TryParseExact(
                        dataItem.Trim(), 
                        Formats ,                         
                        System.Globalization.DateTimeFormatInfo.InvariantInfo,
                        System.Globalization.DateTimeStyles.None, 
                        out t)
                        == false)
                        return false;
                        else
                        return DoOtherStuff(dataItem);

Входящие данные, "dataItem", это string. Входящий текст выглядит так:

02 января 2016 г. 13: 15: 49: 447

Чего мне не хватает? Почему это всегда возвращает «ложь», независимо от даты? Я пытался преобразовать строку в верхний регистр, но это ничего не изменило.

1 Ответ

0 голосов
/ 15 января 2019

Проблема в том, что YYYY пишется с большой буквы. Правильный символ года, который вы ищете: yyyy.

string[] Formats = new string[] { "dd MMM yyyy HH:mm:ss:fff", "yyyy-MM-dd hh:mm:ss:fff" }; должно работать.

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