Résolvez intelligemment l'erreur « La chaîne n'est pas reconnue comme une date et une heure valides » : formatage de la date et de l'heure
Lors de la conversion d'une chaîne en un objet DateTime, il est crucial de spécifier le format correct, sinon il est facile d'obtenir l'erreur "Chaîne non reconnue comme date/heure valide". Cette erreur se produit généralement car le format de chaîne ne correspond pas au format attendu.
Par exemple :
<code class="language-csharp">this.Text="22/11/2009"; DateTime date = DateTime.Parse(this.Text);</code>
Ce code tente de convertir une chaîne en un objet DateTime en utilisant le format par défaut, mais la chaîne suit le format "jj/MM/aaaa". Pour résoudre ce problème, utilisez la méthode DateTime.ParseExact() :
<code class="language-csharp">DateTime date = DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);</code>
ParseExact() garantit que la chaîne est analysée correctement en spécifiant le format dans le deuxième argument.
Le paramètre IFormatProvider permet l'utilisation d'un fournisseur de format personnalisé, remplaçant les paramètres de culture par défaut. Cependant, dans ce cas, il n'est pas nécessaire de recourir à un fournisseur de format personnalisé car le format attendu est explicitement spécifié dans la conversion de chaîne.
Les deux méthodes résoudront le problème, mais ParseExact() est généralement plus sûre et plus claire. Il déclare clairement le format attendu, ce qui facilite le débogage en cas d'incohérences.
En termes de performances, les deux méthodes sont à peu près les mêmes. Dans certains cas, Parse() peut être légèrement plus rapide, mais cela est généralement négligeable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!