Microsoft Edge - C # Ошибка - строка не была распознана как допустимый DateTime - PullRequest
0 голосов
/ 05 июня 2018

Привет, проблема с форматированием даты и времени в моем методе Get контроллера MVC.Работает нормально, когда запрос отправляется из Firefox, Chrome, Internet Explorer, но он создает исключение, а запрос поступает из браузера Microsoft Edge : (

Исключение: строка не была распознана какдействительный DateTime.

Пример кода здесь -

public JsonResult GetFYDetailsForDate(string date)
{
    //input date = "6/13/2018"
    DateTimeStyles dateTimeStyles = DateTimeStyles.AssumeLocal;
    CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");

    var culturedDate1 = DateTime.ParseExact(date, "M/d/yyyy", new System.Globalization.CultureInfo("en-US"));

    var culturedDate = DateTime.Parse(date, culture, dateTimeStyles);

}

Дата въезда - "6/13/2018", а выходные данные Parsed Date - "13.06.2008 12:00:00 AM ", если запрос приходит от Chrome, Firefox и Internet Explorer.

** Для решения этой проблемы мы можем извлечь дату, месяц и год из строки даты, но я не хочу делатьэто. Просто хочу узнать, что не так с запросом приходит из браузера Microsoft Edge.

Скриншот кода - enter image description here

1 Ответ

0 голосов
/ 06 июня 2018

Существует проблема с вводимой строкой даты, когда она поступает из браузера Microsoft Edge.Строка даты содержит символы (Char) 8206 , поэтому C # не может проанализировать дату и выдает ошибку.Видимая длина строки равна 9, но фактическая длина строки равна 14. Поэтому я удалил эти скрытые символы из строки, и теперь она отлично работает.

Ниже фрагмента кода, который я использовал для очистки строки, предложите любыелучший и эффективный способ сделать это.

Спасибо.

string sanitizedDateString = new String(inputDate.ToCharArray().Where(x => x != (Char)8206).ToArray());
...