У меня есть строка, которая выглядит так: "9/1/2009". Я хочу преобразовать его в объект DateTime (используя С#).
Это работает:
DateTime.Parse("9/1/2009", new CultureInfo("en-US"));
Но я не понимаю, почему это не работает:
DateTime.ParseExact("9/1/2009", "M/d/yyyy", null);
Нет слова в дате (например, "Сентябрь" ), и я знаю конкретный формат, поэтому я бы предпочел использовать ParseExact (и я не понимаю, почему CultureInfo понадобится). Но я продолжаю получать страшное исключение "String не было признано действительным DateTime".
Спасибо
Небольшое продолжение. Вот три подхода, которые работают:
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... Неожиданно?