Comment puis-je convertir une chaîne de date du format X au format Y?

J’ai une chaîne contenant une date dans un format X (par exemple, 12/31/2015 ). Comment puis-je le convertir au format Y (par exemple 2015-12-31 00:00:00 )?

C # a sa propre structure DateTime . Le but est de

  1. convertir votre chaîne en DateTime , puis
  2. reconvertissez votre DateTime en chaîne.

Tout d’abord, vous devez obtenir la chaîne de format pour les formats X et Y. Vérifiez les deux listes suivantes:

  • Chaînes de format de date et heure standard
  • Chaînes de format de date et heure personnalisées

Par exemple, pour le 12/31/2015 , tout d ou MM/dd/yyyy (avec la culture en-US ou invariante) ou MM\/dd\/yyyy (avec n’importe quel paramètre régional) conviendrait. Pour 2015-12-31 00:00:00 , ce serait yyyy-MM-dd HH:mm:ss .


Pour la première étape, vous pouvez utiliser DateTime.ParseExact (ou DateTime.TryParseExact , si vous voulez échouer normalement si la chaîne n’a pas le format correct), par exemple,

 var myDateTime = DateTime.ParseExact(myInputSsortingng, "MM/dd/yyyy", CultureInfo.InvariantCulture); 

Pour la deuxième étape, utilisez DateTime.ToSsortingng :

 var myOutputSsortingng = myDateTime.ToSsortingng("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); 

Une fonction simple basée sur la méthode recommandée par Heinzi:

 public ssortingng ConvertDateFormat(ssortingng input, ssortingng inputFormat, ssortingng outputFormat) { return DateTime.ParseExact(input, inputFormat, CultureInfo.InvariantCulture) .ToSsortingng(outputFormat,CultureInfo.InvariantCulture); } 

Exemple de travail: https://dotnetfiddle.net/gQ11qs