Может ли кто-нибудь объяснить, почему следующий фрагмент возвращает true?
В соответствии с документами для Спецификатор пользовательского формата "d" , "Однозначный день отформатирован без начального нуля". Итак, почему TryParseExact терпит неудачу, когда я даю ему однозначный день с начальным нулем?
DateTime x;
return DateTime.TryParseExact
(
"01/01/2001",
@"d\/MM\/yyyy",
null,
System.Globalization.DateTimeStyles.None,
out x
);
UPDATE
Я думаю, может быть, я был непонятен изначально. То, что я действительно пытаюсь понять, - это: Почему TryParseExact принимает некоторые значения, которые не соответствуют точно? из всей документации, которую я видел, 'd' соответствия '01' и '1' так же, как если бы "ММ" соответствовал "Марту", а также "03". Проблема здесь заключается не в том, что значения эквивалентны, а в том, что они не соответствуют формату.
Соответствующие фрагменты документации:
-
Из TryParseExact: Формат строкового представления должен точно соответствовать указанному формату.
-
Из Спецификатор 'd': Однозначный день отформатирован без начального нуля.
Мне кажется совершенно ясно, что "01" имеет ведущее 0 и поэтому точно не соответствует "d".