хорошо, кажется, что Linux. Net В Core 2.2 определены разные названия месяцев по сравнению с Windows:
TestContext.WriteLine("month:{0}", string.Join(";", ruRu.DateTimeFormat.AbbreviatedMonthNames));
: month:янв;фев;мар;апр;май;июн;июл;авг;сен;окт;ноя;дек;
на Windows
, но month:янв.;февр.;март;апр.;май;июнь;июль;авг.;сент.;окт.;нояб.;дек.;
в Ubuntu (не спрашивайте меня, почему). Точка добавляется в конце месяца сокращений.
Также необходимо учитывать, что июнь;июль;март
не укорочены и февр
не похож на Windows фев
Ma c ОС построена на некоторых * Ядро 1038 * на самом деле, поэтому оно имеет ту же структуру. net, что и в Ubuntu.
Ваш случай может быть решен с помощью строки нового формата, как показано ниже:
string[] dateFormats = new string[]{
"ddd, d MMM yyyy HH:mm:ss",
"ddd, d MMM yyyy HH:mm:ss K",
"ddd, d MMM. yyyy HH:mm:ss K", // this is added for linux
"ddd, d MMM yyyy H:mm:ss",
"ddd, d MMM yyyy H:mm:ss K"
};
Однако выглядит как ошибка в. net, так как, например, не будет анализировать март месяц с Пн, 4 мар 2019 00:00:00
.
UPD: я проверил и не нашел способа разбирать Пн, 4 мар 2019 00:00:00
на Linux использование DateTime.TryParseExact
из-за март
на Linux не будет проанализировано с мар
Кажется, что вы должны зарегистрировать новую проблему для. Net Core. Или разобрать строку вручную, но она отстой