разбирать строку в произвольном формате даты c # - PullRequest
0 голосов
/ 19 января 2019

У меня проблемы с синтаксическим анализом строки для правильного DateTime. Мне известно о DateTime.ParseExact, но я продолжаю поднимать исключения. Что я здесь упустил?

const string formatString = "yyyyMMdd HHmmss";
const string fileName = @"C:\path.csv";

IEnumerable<Foo> dtos = File.ReadAllLines(fileName)
        .Skip(1)
        .Select(line => new {line, columns = line.Split(';')})
        .Select(t =>
        {
            try
            {
                return new Foo
                {
                    Bar = DateTime.ParseExact(t.columns[0], formatString, CultureInfo.InvariantCulture, DateTimeStyles.None)
                };
            }
            catch (FormatException)
            {
                Console.WriteLine("{0} is not in the correct format.", t.columns[0])
            }
            return null;
        });

поймать сообщение

20110102 170100 не в правильном формате.

РЕДАКТИРОВАТЬ: ссылка на скриншот ошибки по просьбе помощников (так что не позволяйте новым учетным записям добавлять изображения). введите описание изображения здесь

1 Ответ

0 голосов
/ 19 января 2019

Код работает. Вы должны читать разные данные:

const string formatString = "yyyyMMdd HHmmss";
static void Main(string[] args)
{
    string input = "20110102 170100";
    DateTime Bar = DateTime.ParseExact(input, formatString, CultureInfo.InvariantCulture, DateTimeStyles.None);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...