DateTime.ParseExact Не распознаёт дату
Получаю ошибку: String '28 авг 2022' was not recognized as a valid DateTime."
DateTime DateTimeCreatedOrder = DateTime.ParseExact("28 авг 2022", "dd MMM yyyy", CultureInfo.CurrentCulture);
Причём пробовал изначально в тестовом проекте (.NET Framework 4.8) всё работало, точно та же строчка. В основном (.NET 6.0) выдаёт исключение.
Ответы (1 шт):
Автор решения: Kurama
→ Ссылка
Потому что в .NET6 другие настройки культур, там сокращения имеют логичную точку в конце (авг.).
Все это можно посмотреть (как и изменить) в culture.DateTimeFormat.AbbreviatedMonthGenitiveNames и culture.DateTimeFormat.AbbreviatedMonthNames, где culture - это нужная культура, в вашем случае var culture = new CultureInfo("ru-RU");.
Собственно, у вас два варианта:
- Ставить точку в строке, которую парсите.
- Менять культуру (например
culture.DateTimeFormat.AbbreviatedMonthGenitiveNames = culture.DateTimeFormat.AbbreviatedMonthNames.Select(x => x.TrimEnd('.')).ToArray();).
EvgeniyZ