web-dev-qa-db-fra.com

Convertir une chaîne en date dans .NET si mon format de date entrant est en YYYYMMDD

Quelle est la meilleure façon de convertir une chaîne en date en C # si mon format de date entrant est en YYYYMMDD

Ex: 20001106

40
Sreedhar

Utilisez DateTime.ParseExact (). Quelque chose comme:

   string date = "20100102";
   DateTime datetime = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture);
56
Brandon
 DateTime.TryParseExact(myDateString, "yyyyMMdd", 
                         CultureInfo.InvariantCulture, 
                         DateTimeStyles.None, out myDateVar )
11
womp
4
Fernando

utilisez DateTime.TryParseExact avec une chaîne de modèle de "yyyyMMdd" si vous êtes sur .NET 2.0 ou supérieur.

Si vous êtes bloqué avec .NET 1.1, utilisez DateTime.ParseExact

voir Chaînes de format DateTime standard pour les règles de création de chaînes de modèle.

4
John Knoeller
DateTime yourDateTime = DateTime.ParseExact(yourString, "yyyyMMdd", null);
3
LukeH

L'utilisation de TryParseExact est généralement plus agréable que ParseExact car elle ne lèvera pas d'exception si la conversion échoue. Au lieu de cela, il retourne vrai s'il réussit, faux s'il ne l'est pas:

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