Передаем в адресной строке приложению такие данные:
http://server/controllerName/start=01.05.2018;end=10.05.2018
На стороне сервера в одном из сервисов парсим дату таким вот методом:
private DateTime ConvertDateFromString(string date) {
CultureInfo fromCulture = new CultureInfo("de-de");
if (DateTime.TryParseExact(date,
fromCulture.DateTimeFormat.ShortDatePattern,
fromCulture, DateTimeStyles.None,
out DateTime tryParseDateTime)) {
return tryParseDateTime;
}
throw new FormatException($"Дата указана в не поддерживаемом формате: {date}. Поддерживаемый формат DD.MM.YYYY");
}
В случае если запросе делаем на локальной машине то все работает ок, но когда программу запускаем в контейнере, то парсинг не удается и мы попадаем в участок с FormatException.
В чем может быть беда?
UPDATED: Разработка ведется на винде а сервер на линуксе. Сейчас почитал что в линуксе может по другому называться культура Германии, видимо проблема в этом.
Вообще, конечно, проблема скорее всего именно в названии формата de-de, вместо de-DE, однако .dotnet core кросс-платформенный и таких проблем быть не должно. Но как вариант:
string format = "dd.MM.yyyy";
DateTime dt;
DateTime.TryParseExact(dateTime,
format,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники