Wie würde ich eine bereits vorhandene Datumszeit in UTC-Zeit konvertieren, ohne die tatsächliche Zeit zu ändern?
Beispiel:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Wie würde ich eine bereits vorhandene Datumszeit in UTC-Zeit konvertieren, ohne die tatsächliche Zeit zu ändern?
Beispiel:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Antworten:
Verwenden Sie die DateTime.SpecifyKind
statische Methode.
Erstellt ein neues DateTime-Objekt mit der gleichen Anzahl von Ticks wie die angegebene DateTime, wird jedoch entweder als Ortszeit, koordinierte Weltzeit (UTC) oder keine angegeben, wie durch den angegebenen DateTimeKind-Wert angegeben.
Beispiel:
DateTime dateTime = DateTime.Now;
DateTime other = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
Console.WriteLine(dateTime + " " + dateTime.Kind); // 6/1/2011 4:14:54 PM Local
Console.WriteLine(other + " " + other.Kind); // 6/1/2011 4:14:54 PM Utc
Sie können es auch so machen:
DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime();
new DateTime(dateTime.Year, dateTime.Month, dateTime.dateTimeay, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime().ToString()
vs DateTime.SpecifyKind(dateTime, DateTimeKind.Utc).ToString()
Sie werden sehen, dass Sie unterschiedliche Ergebnisse erhalten.
Verwenden Sie die DateTime.ToUniversalTime
Methode.
PST
Wert?