Почему DateTime.ParseExact () не может проанализировать «01.09.2009» с помощью «M / d / yyyy»

У меня есть строка, которая выглядит следующим образом:9/1/2009", Я хочу преобразовать его в объект DateTime (используя C #).

Это работает:

DateTime.Parse("9/1/2009", new CultureInfo("en-US"));

Но я нене понимаю, почему это не такт работа:

DateTime.ParseExact("9/1/2009", "M/d/yyyy", null);

Там'нет слова в дате (как "Сентябрь"), и я знаю конкретный формат, поэтому яЯ бы предпочел использовать ParseExact (а я нене понимаю, зачем будет нужен CultureInfo). Но я продолжаю получать страшные "Строка не была распознана как действительный DateTime " исключение.

Спасибо

Немного продолжения. Вот 3 подхода, которые работают:

DateTime.ParseExact("9/1/2009", "M'/'d'/'yyyy", null);
DateTime.ParseExact("9/1/2009", "M/d/yyyy", CultureInfo.InvariantCulture);
DateTime.Parse("9/1/2009", new CultureInfo("en-US"));

И вот 3, которые нет работа:

DateTime.ParseExact("9/1/2009", "M/d/yyyy", CultureInfo.CurrentCulture);
DateTime.ParseExact("9/1/2009", "M/d/yyyy", new CultureInfo("en-US"));
DateTime.ParseExact("9/1/2009", "M/d/yyyy", null);

Итак, Parse () работает с "EN-US», но не ParseExact ... Неожиданно?

Ответы на вопрос(7)

Ваш ответ на вопрос