Почему 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 ... Неожиданно?