DateTime.ParseExact для формата "dMMyyHHmmss" не работает (c #) - PullRequest
0 голосов
/ 28 августа 2018

У меня есть даты, приходящие в лог-файл в следующем формате: "dMMyyHHmmss".

Поскольку я хочу создать исключение, если найденный формат не совсем тот, я использую DateTime.ParseExact. Дело в том, что я получаю FormatException со следующим сообщением:

'String' ..... 'не был распознан как действительный DateTime.

Код для подражания:

var format = "dMMyyHHmmss";

var date = new DateTime(2018, 1, 1, 1, 1, 1);
var strDate = date.ToString(format);
date = DateTime.ParseExact(strDate, format, CultureInfo.InvariantCulture);

Есть мысли, почему я не могу использовать этот формат?

1 Ответ

0 голосов
/ 28 августа 2018

Это потому, что формат несколько неоднозначен для синтаксического анализатора LL.

Полученная вами строка 10118010101

Синтаксический анализатор читает 1 и выглядит как, ок, его 1 для d
Затем он читает 0 и запутывается, должно ли оно быть 10 для d или 1 для d и 01 для MM?

Вы можете сделать парсер счастливым, если добавите разделитель между ними или используете dd вместо d, чтобы сделать грамматику однозначной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...