Передаем в адресной строке приложению такие данные:
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);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости