J'ai une chaîne de caractères qui ressemble à ceci : "9/1/2009". Je veux la convertir en un objet DateTime (en utilisant C#).
Ça marche :
DateTime.Parse("9/1/2009", new CultureInfo("en-US"));
Mais je ne comprends pas pourquoi cela ne fonctionne pas :
DateTime.ParseExact("9/1/2009", "M/d/yyyy", null);
Il n'y a pas de mot dans la date (comme "septembre"), et je connais le format spécifique, donc je préférerais utiliser ParseExact (et je ne vois pas pourquoi CultureInfo serait nécessaire). Mais je continue à obtenir l'exception redoutée "String was not recognized as a valid DateTime".
Merci
Un petit suivi. Voici 3 approches qui fonctionnent :
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"));
Et en voici 3 qui ne fonctionnent pas :
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);
Ainsi, Parse() fonctionne avec "en-US", mais pas ParseExact... Inattendu ?