Разбирать по дате имени
Поэтому мне нужно разобрать дату имени файла. До сих пор, например, у меня есть файл, и дата
Accounts_2012017Проблема, которая у меня есть на данный момент, заключается в том, что формат даты что-то вроде "M/dd/yyyy" , и поэтому каждый раз, когда я использую ParseExact,
Я получаю ошибку, что строка не является допустимой датой-временем, даже если я делаю "ММ/ДД/гггг". Какие еще у меня есть варианты, чтобы выбрать эту дату?
Вышеприведенная дата гласит: 1 февраля 2017 года
Что я уже пробовал:
string temp = filename.Replace(".txt", "").Substring(filename.LastIndexOf('_') + 1); DateTime extracted = DateTime.ParseExact(temp, "Mddyyyy", System.Globalization.CultureInfo.InvariantCulture);
Dave Kreskowiak
Быстрым решением было бы получить строку даты, проверить ее длину, а затем переключиться на соответствующую строку синтаксического анализа, одну для однозначных месяцев и одну для двухзначных месяцев.
На самом деле проблема в ваших данных. В нормализованном формате у вас будет одинаковое количество цифр для всех чисел месяца , дня и года. Это означает, что ведущие нули в значениях заполняют необходимое количество цифр для поддержания согласованности данных.
SmartDeveloping
Дэйв, к сожалению, это печальная часть того, что он не находится в нормализованном формате, иначе у меня даже не было бы этой проблемы.
[no name]
Используйте оператор If для проверки длины temp и добавьте "0" в начало строки, Если длина не равна 8. Если кто-то, кто дает вам эти имена, не собирается норамлизировать их для вас, вам придется сделать это самостоятельно.
[no name]
Вы не очень хорошо прочитали комментарий, не так ли?
SmartDeveloping
Извините, я понимаю, что вы имеете в виду.