Некорректно парсится дата

259
27 июня 2017, 21:11

У меня проблема с парсингом даты из строки в Datetime формат, когда я использую, напр. 01.05.2017. Пример: у меня есть дата "01.05.2017" я парсю её из строки в нужный формат даты и отнимаю один день, чтобы получить предыдущий, однако вместо 30.04.2017 получаю 31.12.2016, а при преобразовании обратно в строку - вообще 31.05.16. В чём может быть проблема, тем более, что с другими датами всё в порядке? Только с первыми числами. Мой код:

DateTime temp_Till = DateTime.ParseExact(bsObj.till_date, "dd.mm.yyyy", CultureInfo.InvariantCulture).AddDays(-1);
bsObj.from_date = temp_Till.ToString("dd.mm.yyyy", CultureInfo.InvariantCulture);
Answer 1

Если бы вы использовали дебаггер, потом начали бы искать место ошибки, то увидели бы, что ещё ДО ЭТАПА AddDays(-1) у вас парсинг даёт дату 01.01.2017 0:05:00.

Разумеется, вычтя из этой даты один день вы получите 31.12.2016.

Проблема -- в некорректном парсинге даты: не dd.mm.yyyy, а dd.MM.yyyy, см. форматы дат в документации.

Вопрос - закрыть, т.к. "Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой".

READ ALSO
Экспорт раздела реестра в файл

Экспорт раздела реестра в файл

Как экспортировать определенный раздел из реестра в файл "reg" ?

263
Как в ASP.Net Core работать с PostgreSQL?

Как в ASP.Net Core работать с PostgreSQL?

С помощью каких библиотек Вы работаете в ASPNet Core с PostgreSQL?

325
Выполнение операций через определенное количество циклов

Выполнение операций через определенное количество циклов

Как сделать так, чтобы через определенное количество циклов выполнялось "что-то"?

210