2013-04-19 4 views
9

ich einen Konstruktor habe, die eine DateTime Aufgabe übernimmt:Aufruf ToString ("yyyy-mm-dd") führt zu falschem Datumsformat

public Report(DateTime date, string start = "0", string end = "0") 
{ 
    Logger.Info("Creating a new Report..."); 

    StartTime = start; 
    EndTime = end; 
    Date = date.ToString("YYYY-mm-dd"); 

    SetStartEndTimes(); 

    Logger.Info("Report Created"); 
} 

Nun, dies funktioniert vor nur 3 Tagen in Ordnung. Allerdings komme ich wieder heute, nach einer Pause, und dies ist das Ergebnis ich sehe:

enter image description here

Wie Sie sehen können, das Datum in weitergegeben werden ist richtig. Nach dem Format ist dies jedoch nicht der Fall. Auch das funktionierte vor meiner Pause. Ich komme zurück und ich verstehe das. Fehle ich etwas? Warum würde es nach der Arbeit von Anfang an so falsch formatieren?

EDIT

Danke Jungs. Der verstimmte Teil durchsucht die Quellcodeverwaltung bei früheren Versionen, das hat funktioniert. Oder vielleicht habe ich mir vorgestellt, dass es funktioniert. Ich weiß es nicht. Aber es ist seit ungefähr 3 Monaten so. Diese

+1

Kleinbuchstaben "m" für Minute steht, nicht Monat! Großbuchstaben "Y" sollten Kleinbuchstaben "y" sein. –

+0

YYYY ist nicht für das Jahr gültig. Es ist yyyy Und die mm ist * Minuten * also du zeigst 49 oben. Mach das MM. – itsmatt

Antwort

17

Jahr müssen Klein- und Monat groß geschrieben werden:

Date = date.ToString("yyyy-MM-dd"); // btw, lowercase mm means minutes 

Custom Date and Time Format Strings

+0

Sieht gut aus für mich ... –

+1

@Tim Beziehen Sie sich auf die Tatsache, dass die Variable nicht benannt ist? Ich denke kaum, dass das einen Downvote wert ist. –

+0

@JohnWillemse ist in Ordnung, die Zeile an sich wäre falsch, aber "Date" wird als Eigenschaft deklariert. Die Syntaxhervorhebung macht es so, als ob der Typ "Datum" anstelle einer Eigenschaft "Datum" erscheint. So oder so wurde die Frage beantwortet. –

7

:

Date = date.ToString("YYYY-mm-dd"); 

Sollte dies sein:

Date = date.ToString("yyyy-MM-dd"); 

Klein mm werden Sie Minuten geben.

+0

Dies führt zu 'YYYY-02-19' oder ähnlich –

+1

Großbuchstaben Ys sind falsch! –

+0

@JohnWillemse Nicht mehr! – DGibbs

Verwandte Themen