Строка '26 / MAR / 2020 09:00 AM 'не была распознана как допустимый DateTime. Есть неизвестное слово, начинающееся с индекса «18» - PullRequest
1 голос
/ 27 марта 2020

Строка '26 / MAR / 2020 09:00 AM 'не была распознана как допустимый DateTime. Существует неизвестное слово, начинающееся с индекса «18».

Как видно из названия, у меня возникла проблема с отображением даты в веб-приложении angular. На самом деле дата работает просто отлично при запуске API локально. Такие же результаты возникают, тестирую ли я от почтальона или самого приложения. При локальном указании на API все работает нормально, при указании на API при размещении на azure возникает указанная выше ошибка. Вот некоторая информация о моей среде.

  1. API: .Netcore 3.1
  2. Веб-приложение: Angular
  3. Хост: Azurewebsites

Вот код при форматировании даты. Имя переменной FechaUltimaMod

string dateFormat = "d/MMM/yyyy hh:mm tt";
CultureInfo ci = CultureInfo.CreateSpecificCulture("es-MX");
DateTimeFormatInfo dtfi = ci.DateTimeFormat;
dtfi.AbbreviatedMonthGenitiveNames = dtfi.AbbreviatedMonthGenitiveNames.Select(p => p.TrimEnd('.')).ToArray();
response.Select(p => { p.FechaUltimaMod = DateTime.Parse(p.FechaUltimaMod).ToString(dateFormat, ci).ToUpper(); return p; }).ToList();

Странно то, что локально она работает просто отлично, ошибка возникает только в том случае, если API находится на azure.

PS У меня нет доступа к учетной записи azure.

Редактировать:

Я заметил, что в сообщении об ошибке упоминается неизвестное слово, начинающееся с индекса «18», которое оказывается индекс «А» в разделе AM. Я сделал следующую модификацию.

From:

string dateFormat = "d/MMM/yyyy hh:mm tt";

To:

string dateFormat = "d/MMM/yyyy hh:mm";

И больше не выдает ошибку. Я не знаю почему, но все еще не исправлено, потому что я хочу tt в дате. Просто и дополнительные фю.

...