web-dev-qa-db-fra.com

Format DateTime.Maintenant à aaaa-mm-jj

Je souhaite convertir le DateTime.Now au format yyyy-mm-dd puisque c'est le seul format que je peux utiliser dans ma requête que je souhaite inclure.
La valeur par défaut format de DateTime.Now ressemble à 5/1/2008 6:32:06 PM.
Si je veux en changer le format en yyyyMMdd je pourrais utiliser cette ligne de code:

var dateString1 = DateTime.Now.ToString("yyyyMMdd");

Mais, quand j'essaye la même chose pour ce yyyy-mm-dd format comme ci-dessous:

var dateString2 = DateTime.Now.ToString("yyyy-mm-dd");

le résultat que j'obtiens est faux. Pour les lignes de code suivantes:

var dateString1 = DateTime.Now.ToString("yyyyMMdd");
var dateString2 = DateTime.Now.ToString("yyyy-mm-dd");

Console.WriteLine("yyyyMMdd " + dateString1);
Console.WriteLine("yyyy-mm-dd "+ dateString2);

J'obtiens le résultat suivant:

enter image description here

ce qui est faux pour le deuxième cas.
Qu'est-ce que je rate?

13
etrupja

Selon msdnMM, le spécificateur de format représente le mois et mm - les minutes.

"mm" | La minute, de 00 à 59.

"MM" | Le mois, du 01 au 12.

Votre code devrait donc ressembler à ceci:

    var dateString1 = DateTime.Now.ToString("yyyyMMdd");
    var dateString2 = DateTime.Now.ToString("yyyy-MM-dd");

    Console.WriteLine("yyyyMMdd " + dateString1);
    Console.WriteLine("yyyy-MM-dd "+ dateString2);

Et vous obtiendrez le résultat souhaité

20
Mikhail Tulubaev
    var dateString1 = DateTime.Now.ToString("yyyyMMdd");
    var dateString2 = DateTime.Now.ToString("yyyy-MM-dd");

    Console.WriteLine("yyyyMMdd " + dateString1);
    Console.WriteLine("yyyy-MM-dd "+ dateString2);

Vous utilisez "mm" au lieu de "MM" dans votre deuxième format. mm correspond aux minutes, MM correspond au mois.

8
Bojan B

Votre miss est un "m" en minuscule dans le second format, qui détermine les MINUTES, mais vous avez besoin de "M" au lieu de "m" pour MOIS.

2
Nigrimmist