Парсинг даты не работает на боевом сервере

204
22 октября 2018, 22:20

Передаем в адресной строке приложению такие данные:

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: Разработка ведется на винде а сервер на линуксе. Сейчас почитал что в линуксе может по другому называться культура Германии, видимо проблема в этом.

Answer 1

Вообще, конечно, проблема скорее всего именно в названии формата de-de, вместо de-DE, однако .dotnet core кросс-платформенный и таких проблем быть не должно. Но как вариант:

string format = "dd.MM.yyyy";
DateTime dt;
DateTime.TryParseExact(dateTime, 
                       format, 
                       CultureInfo.InvariantCulture, 
                       DateTimeStyles.None, 
                       out dt);
READ ALSO
Internal server error после установки ActionFilter

Internal server error после установки ActionFilter

Пишу фильтр-логгер запросовMVC WebAPI+NInject

209
C# Windows 10 DateTime.Now.ToString(“yyyy.MM.dd HH:mm”); не ставит точек

C# Windows 10 DateTime.Now.ToString(“yyyy.MM.dd HH:mm”); не ставит точек

В программе работающей под Windows 10 нажав на кнопку в которой прописано:

165
Считывать нажатия кнопок в WinForms

Считывать нажатия кнопок в WinForms

В приложении важны доли секунды для точных вычисленийМожно ли после введенного значения в TextBox нажав кнопку Enter выполнялся какой либо блок...

191
Как правильно распарсить html код?

Как правильно распарсить html код?

Есть html код, использую CsQuery, собственно как правильно вытащить селекторы из этого кодаИнтересует, как мне выдрать Менеджер по грузоперевозкам...

180