2016-08-08 33 views
5

Ich möchte die DateTime.Now in das Format yyyy-mm-dd konvertieren, da das ist das einzige Format, das ich in meiner Abfrage verwenden kann, die ich aufnehmen möchte.
Der Standard format von DateTime.Now sieht wie 5/1/2008 6:32:06 PM aus.
Wenn ich das Format es yyyyMMdd ändern will ich diese Codezeile verwenden:Format DateTime.Now zu JJJJ-MM-TT

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

Aber, wenn ich das gleiche für dieses yyyy-mm-dd Format versuchen, wie unten: der

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

Ergebnis, das ich bekomme, ist falsch. Für die folgenden Codezeilen:

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

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

ich folgendes Ergebnis:

enter image description here

, die für den zweiten Fall falsch ist.
Was fehlt mir?

+0

'mm' ist Minuten. Was Sie brauchen, ist MM in Ihrem ersten Format. – uTeisT

Antwort

7

Nach msdnMM Format-Spezifizierer steht für Monat und mm - für Minuten.

"mm" | Die Minute, von 00 bis 59.

"MM" | Der Monat, von 01 12 bis

So sollte Ihr Code wie folgt aussehen:

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

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

und Sie werden das gewünschte Ergebnis

+0

Sehr klare Erklärung, danke. – eg16

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

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

Sie verwenden "mm" anstelle von "MM" in Ihrem zweiten Format. mm ist für Minuten, MM ist für Monat.

+0

Danke für Ihre Lösung. Dies löste mein Problem, aber @Mikhail erklärte den Grund, also nahm ich seine Antwort an und wählte auch deine. Danke – eg16

2

Ihr Fehler ist Kleinbuchstabe "m" im zweiten Format, die MINUTES bestimmen, aber Sie brauchen "M" anstelle von "m" für MONATE.

+0

Danke für die nützlichen Informationen. – eg16