2009-12-16 8 views
1

Mon code actuel ressemble à ceci:C# DateTime Parsing Problème

 DateTime dateBegin = DateTime.ParseExact(begin, "MM/dd/yyyy", null); 
     DateTime dateEnd = DateTime.ParseExact(end, "MM/dd/yyyy", null); 

Mais il jette une exception à chaque fois que la date de "fin" est différent. Je reçois les dates d'un contrôle DateTimePicker, ainsi la date peut ressembler à "1/12/2010" et alors il jettera l'exception. Comment puis-je éviter cela?

Merci.

+2

Est-ce dans ASP.NET/WinForms/WPF? – ZombieSheep

Répondre

11

Est-ce winforms? il suffit d'utiliser .Value sur le sélecteur et vous obtiendrez le droit DateTime - pas besoin d'analyser.

En fin de compte, "1/12/2010" n'est pas "MM/jj/aaaa"; vous pouvez également essayer « » M/d/yyyy » comme solution de repli?

string s = "1/12/2010"; 
string[] formats = { "MM/dd/yyyy", "M/d/yyyy", "M/dd/yyyy", "MM/d/yyyy" }; 
DateTime value = DateTime.ParseExact(s, formats, CultureInfo.CurrentCulture, DateTimeStyles.None); 
4

Pourquoi utilisez-vous pas DateTimePicker.Value?

0

Si vous avez fourni les informations pile/exception ti peut être plus facile à help mais je m'attendrais à ce qu'il se lève car ParseExact échoue probablement parce qu'il ne correspond pas au format que vous essayez de réduire lui aussi

4

Si vous obtenez la valeur d'un DateTimePicker, pourquoi ne pas utiliser la valeur de ce contrôle qui est déjà un DateTime? Je ne sais pas pourquoi vous essayez d'analyser la chaîne ...