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
DateTime
, puis 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:
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