Beim Versuch, meine Ortszeit von Javascript in C# zu konvertieren, habe ich nach S/O gesucht, um einige Beispiele zu finden. Während ich einige verschiedene Ansätze dazu gefunden habe, machen alle von ihnen die letzte Zeit als 7 Stunden vor mir, was ich nicht verstehe.Warum wird die C# -DateTime 7 Stunden im Voraus analysiert?
z.B .:
var t = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(1468877118719).ToLocalTime();
Console.WriteLine(t)
7/18/2016 9:25:18 PM//<--output
oder
var t = DateTime.Parse("2016-07-18T21:27:32.513Z");
Console.WriteLine(t);
7/18/2016 9:27:32 PM//output
auch, auch wenn ich einfach versuchen,
var now = DateTime.Now;
Console.WriteLine(now);
7/18/2016 9:39:55 PM//the output is 7 hours ahead.
Kann mir jemand sagen, warum dies geschieht und wie es zu beheben?
, wann immer Sie eine unerwartete Datum/Zeit-Differenz erhalten, die sich einig genaue Zahl der Stunden ist, ist es fast immer eine Zeitzone Problem. Kein Zweifel, Ihr Computer ist in UTC + 7 für die Zeitzone –
Sie behandeln eine lokale Zeit als UTC-Zeit. Tun Sie das nicht (oder erhalten Sie eine UTC-Zeit statt einer lokalen Zeit als Eingabe). – Servy
DateTimeKind.Utc ist dein Problem hier. Holen Sie es in Ortszeit. – ManoDestra