2010-02-02 4 views

Répondre

53

Utilisez DateTime.ParseExact(). Quelque chose comme:

string date = "20100102"; 
    DateTime datetime = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); 
+0

@Dynami essayer à nouveau, je viens d'éditer avec le bon format (affaire compte) –

+2

Selon la solution de Luke, il fonctionne très bien le format de date devrait être 'aaaaMMdd' autrement est l'attente 'chaîne chaîne n'a pas été reconnu comme un datetime valide' – Sreedhar

11
DateTime.TryParseExact(myDateString, "yyyyMMdd", 
         CultureInfo.InvariantCulture, 
         DateTimeStyles.None, out myDateVar) 
+2

J'ai utilisé cette méthode car il m'a permis de vérifier la valeur de retour de TryParseExact et savoir si la date convertie correctement. J'ai mis un défaut quand ce n'est pas le cas. –

3
DateTime yourDateTime = DateTime.ParseExact(yourString, "yyyyMMdd", null); 
3

L'utilisation de TryParseExact est généralement plus agréable que celle de ParseExact, car elle n'émettra pas d'exception si la conversion échoue. Au contraire, il retourne vrai si elle est couronnée de succès, false si ce n'est pas:

DateTime dt; 
if (DateTime.TryParseExact("20100202", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) 
{ 
    Console.WriteLine(dt.ToString()); 
} 
Questions connexes