2017-03-12 7 views
0

Ich benutze C#.DateTime Anzeige ungültige Zeit

Wenn ich versuche, die aktuelle Zeit mit der Folge Linie zu bekommen:

var time = TimeSpan.FromMilliseconds((dtNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).ToLocalTime()).TotalMilliseconds); 

Und es zu überprüfen, mit

var date = new DateTime(time.Ticks); 

Ich habe ungültig Jahr, das Jahr, ich bin get ist 0048 statt 2017.

Warum ist es passiert? Wie kann ich es beheben und wissen, ob die time gültige Datum enthält und wenn nicht zu beheben? (addieren Sie die Jahre)

Danke!

+0

Wenn Sie versuchen, das aktuelle Datum und die Zeit zu bekommen, warum nicht: 'var time = DateTime.Now'? Warum die aufwendige Berechnung? –

Antwort

1

Wie pro the documentation, die ticks Parameter nicht aus dem Jahr 1970, es ist aus dem Jahr 1:

Zecken
Typ: System.Int64
Ein Datum und Uhrzeit in der Anzahl von 100-Nanosekunden ausgedrückt Intervalle, die seit Januar 1, 0001 bei 00: 00: 00.000 im Gregorianischen Kalender verstrichen sind.

(Hervorhebung von mir)

+0

Oh ok, also wie kann ich das reparieren? nur um 1969 zu Jahren hinzuzufügen? – CSharpBeginner