2017-07-07 22 views
-1

Also ich bin neu in Windows Forms und ich brauche die aktuelle DateTime. Wie üblich verwende ich die Syntax:C# DateTime.Now kehrt 0001-01-01 00:00:00

class MyClass 
{ 
    private DateTime date; 

    //Constructor omitted 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     date = DateTime.Today; 
    } 
} 

Nun, wenn ich meine Anwendung anwerfen, Form1_Load genannt wird. Es initialisiert mein DateTime Objekt zu 0001-01-01 00:00:00. Warum passiert das jetzt? Hatte dieses Problem nie in einer Konsolenanwendung.

+2

'DateTime.Today' ist nicht' DateTime.Now', aber egal , gibt es auch nicht '0001-01-01' zurück. Logische Schlussfolgerung: entweder 'Form1_Load' wird * nicht * aufgerufen, oder etwas anderes passiert hinterher, das' Datum' ändert, oder Sie interpretieren einfach falsch, was Sie sehen. Wenn 'DateTime.Today' * wirklich * 0001-01-01 00: 00: 00' ergibt, haben Sie etwas Interessantes, aber ich vermute, dass Sie es nicht tun. –

+2

Sind Sie sicher, dass Form1_Load aufgerufen wird? Hast du das Debuggen probiert? – Kirhgoph

+0

Nichts ändert sich mit WinForms. Woher weißt du, dass der Wert im Wesentlichen Null ist? Wie haben Sie den Wert überprüft? Haben Sie die Anwendung debuggt? Schaust du dir vielleicht die * falschen * Daten an? –

Antwort

1

Sie weglassen nicht Konstruktor (nicht löschen Konstruktor), und versuchen, diese

date = DateTime.Today; // date returns 07-07-2017 00:00:00 

ODER

date = DateTime.Now; // date returns 07-07-2017 12:42:00