Comment convertir une chaîne (string) en DateTime ?

En langage C#, une classe fournit des méthodes pour convertir une chaîne de caractères.

Dans le langage C#, les dates et les heures sont gérées par la classe DateTime. Il arrive souvent que l'on récupère des dates et heures sous forme de chaîne de caractères car elles proviennent d'une source externe (fichier, base de données...). La classe DateTime fournit heureusement des méthodes pour convertir une chaîne de caractères.

La méthode parse() prend en argument une chaîne de caractères et la convertit en objet de la classe DateTime. Pour que la méthode parse() fonctionne, il est nécessaire que la date et l'heure soient formatées d'une manière standard. On peut préciser en deuxième argument une culture qui servira de base à la méthode pour interpréter la chaîne de caractères.

DateTime maDate = DateTime.Parse(2016-09-10 18:10:05);

Attention, la méthode parse() provoque une exception si la chaîne de caractères n'est pas dans le format attendu. On peut éviter ce problème avec la méthode tryParse(). Elle retourne un booléen indiquant si la conversion a fonctionné.

DateTime maDate;
if (!DateTime.TryParse(2016-09-10 18:10:05, out maDate))
{
 //La conversion de la date n'a pas fonctionné
}

Si vous connaissez le format de la date et qu'il n'est pas standard, vous pouvez faire appel à la méthode parseExact() et son équivalent pour gérer les erreurs de conversion, tryParseExact(). Il faut alors indiquer le format exact de la date grâce à la nomenclature des dates (elle est disponible sur cette page : https://msdn.microsoft.com/fr-fr/library/az4se3k1(v=vs.80).aspx).

string maDate = 2016/09/10 18,10,05;
DateTime myDate = DateTime.ParseExact(maDate, yyyy/MM/dd HH,mm,ss, System.Globalization.CultureInfo.InvariantCulture)