C # DateTime to UTC Time ohne Änderung der Uhrzeit


124

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

Du bist in PST ? Wie bekommen Sie PSTWert?
Kiquenet

Antworten:


207
6/1/2011 4:08:40 PM Local
6/1/2011 4:08:40 PM Utc

von

DateTime dt = DateTime.Now;            
Console.WriteLine("{0} {1}", dt, dt.Kind);
DateTime ut = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
Console.WriteLine("{0} {1}", ut, ut.Kind);

50

Verwenden Sie die DateTime.SpecifyKindstatische 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

18

Sie können den überladenen Konstruktor verwenden von DateTime:

DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second, DateTimeKind.Utc);

0

Sie können es auch so machen:

DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime();

Dies funktioniert möglicherweise nicht wie erwartet. Versuchen Sie ... 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.
Homer

-7

Verwenden Sie die DateTime.ToUniversalTimeMethode.


3
das ändert die dateTime auf 23 Uhr (ich bin in PST)
Luke Belbina
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.