Pourquoi cette analyse de date ne fonctionne-t-elle pas dans C # .net 1.1?
Question
private bool ValidDateCheck(){
bool _isValid = true;
try{
DateTime.Parse("07/&*/2009");
DateTime d = Convert.ToDateTime("07/&*/2009");
}
catch{
_isValid = false;
}
return _isValid;
}
Comment le code ci-dessus ne génère-t-il pas une exception?
La solution
Ceci provient de la documentation .NET 1.1 :
La chaîne s est analysée à l'aide du informations de formatage dans un DateTimeFormatInfo initialisé pour le culture actuelle.
Cette méthode tente d’analyser s complètement et éviter de jeter FormatException. Il ignore données non reconnues si possible et remplit le mois, le jour et l'année manquants informations avec l'heure actuelle. Si s ne contient qu'une date et aucune heure, cette méthode suppose 12 heures. Tout blanc de tête, intérieur ou arrière le caractère d'espace en s est ignoré.
Le paramètre s doit contenir le représentation d'une date et heure dans l’un des formats décrits dans le Sujet DateTimeFormatInfo.
Je ne parviens pas à tester ceci car la version la plus ancienne que je peux créer dans VS2008 est 2.0.
Autres conseils
Le code ne lève pas d'exception car les exceptions sont levées au moment de l'exécution et ce code ne s'exécute jamais. Je sais qu'il ne fonctionne jamais car il est impossible de le compiler avec des guillemets simples pour les littéraux de chaîne. Vous devez utiliser des guillemets doubles pour les chaînes.
Si les guillemets simples ne sont qu'une faute de frappe, veuillez éditer la question et je jetterai un autre coup d'œil.
utilisez DateTime.TryParse ()