Ошибка при конвертации строки в дату C#

При конвертации строки в дату возникает ошибка: System.FormatException: "Строка не распознана как действительное значение DateTime."

string date_string = check_array[i].ToString().Split(',')[1]; // приходит "01.03.2021"

DateTime dt = DateTime.ParseExact(date_string, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture);

В отладчике смотрел - действительно, приходит string "01.03.2021".

Если же в коде указать конкретную дату "01.03.2021", то работает без ошибок:

DateTime dt = DateTime.ParseExact("01.03.2021", "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture);
            

Помогите решить проблему. Спасибо.

Специально, для тех, кто не верит - принтскрин отладчика: введите сюда описание изображения


Ответы (1 шт):

Автор решения: Михаил

Спасибо за наводку. Действительно, сравнил длины строк - разные! Оказывается, в приходящей строке были непечатные символы. Строка приходит из javascript, поэтому это и происходит. Решил проблему удалением указанных символов из строки перед конвертацией в дату:

date_string = Regex.Replace(date_string, @"\u200e", string.Empty);

Всем спасибо за внимание.

→ Ссылка