C# - Convertir DateTime au format aaaa-MM-jj

Je suis en train de changer la date au format "jj/MM/aaaa" "aaaa-MM-jj"

C'est ce que j'ai en ce moment:

DateTime date = Convert.ToDateTime("31/01/2000");
Console.WriteLine(date);

String format = "yyyy-MM-dd";
String dateStr = date.ToString(format);
Console.WriteLine(dateStr);

DateTime parsedDate = DateTime.ParseExact(dateStr, format, CultureInfo.InvariantCulture);
Console.WriteLine(parsedDate);

- Je obtenir ces résultats:

31/01/2000 12:00:00 AM
2000-01-31
31/01/2000 12:00:00 AM

En fin de compte, je veux que le dernier résultat à 2000-01-31

EDIT: Juste pour clarifier mon objectif actuel. Je suis avec SSIS pour convertir un DT_DATE(jj/MM/aaaa) champ dans un autre DT_DATE(aaaa-MM-jj). Donc pensé que je pourrais utiliser un Composant de Script.
Cela signifie que je ne peux pas la convertir en Chaîne de caractères.

MODIFIER++réponse:

Désolé tout le monde, je crois que je me suis embrouillé la question, mais je peux répondre moi-même maintenant.

Mon but était de convertir la source de champ DT_DATE(jj/MM/aaaa) dans dest champ DT_DATE(aaaa-MM-jj) dans SSIS.

J'ai d'abord essayé d'utiliser une Colonne Dérivée par "Remplacement de l'origine de champ' avec (DT_DBDATE). Cela n'a pas fonctionné comme il m'a donné la source d'origine.

J'ai donc essayé d'utiliser un Composant de Script qui a conduit à la partie supérieure de ma question, et beaucoup de confusion. Il n'a tout simplement pas de travail.

La solution a été d'utiliser une Colonne Dérivée par "Ajouter une nouvelle colonne" et de le donner (DT_DBDATE). DT_DBDATE du format d'origine est en fait aaaa-MM-jj.

Oh attends, viens de trouver stackoverflow.com/questions/3373835/... <- ce qui fait sens.
Où est la question? Vous avez déjà obtenu le code que vous voulez dans le milieu de votre échantillon. Cette date correspond à la date que vous avez dit que vous voulez. Vous pouvez également essayer de dateTimeInstance.ToShortDateString(). Vous pouvez également regarder dans les paramètres régionaux, et la Culture de la classe. Cela peut vous aider à le faire automatiquement vos dates de sortie dans un format spécifique, basé sur les paramètres du système.
Désolé, depuis, j'ai mis à jour ma question. Encore assez débutant à ce. Serait dateTimeInstance.ToShortDateString() me donner le format requis? Ce que je veux n'est pas de la date à convertir en chaîne de caractères avec quelque format que ce soit, mais plutôt de conserver le format, je lui ai donné comme un DateTime obj. Alors peut-être que la Culture de la classe aidera, mais j'ai observé que, pour un certain temps maintenant, et n'arrive pas à trouver une solution.
Vous pourriez ne pas être en mesure de faire ce que vous essayez de faire. Voir cet article MSDN - "Lorsqu'une chaîne est convertie en un DT_DATE, ou vice versa, les paramètres régionaux de la transformation est utilisé. Toutefois, la date est dans la norme ISO format AAAA-MM-JJ, indépendamment du fait que les paramètres régionaux de préférence utilise le format ISO". Mais vous pouvez toujours essayer. Je ne sais pas ce qu'est un "composant de script" est (je n'ai pas fait de SQL server), mais essayez tout simplement (DT_DATE)myDateTime.ToString("yyyy-MM-dd");. Si cela fonctionne, c'est parce qu'il convertit le DateTime à une chaîne, à un DB_DATE
Hey merci pour le tuyau. Après avoir vu cela, j'ai vérifié ce que le format de (DT_DBDATE) et voilà, c'est dans le format que je veux. Donc, tout ce que j'avais à faire était d'utiliser une Colonne Dérivée et "(DT_DBDATE)fieldname", qui, heureusement, les convertit.

OriginalL'auteur kouri | 2011-07-20