C# DateTime untuk Waktu UTC tanpa mengubah waktu

Bagaimana saya mengubah yang sudah ada sebelumnya datetime untuk waktu UTC tanpa mengubah waktu yang sebenarnya.

Contoh:

DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Mengomentari pertanyaan (1)
Larutan
6/1/2011 4:08:40 PM Local
6/1/2011 4:08:40 PM Utc

dari

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);
Komentar (0)

Gunakan DateTime.SpecifyKind metode statis.

Menciptakan new DateTime objek yang memiliki nomor yang sama dari kutu seperti yang ditentukan DateTime, tetapi ditunjuk sebagai salah waktu setempat, Coordinated Universal Time (UTC), atau tidak, seperti yang ditunjukkan oleh ditentukan DateTimeKind nilai.

Contoh:

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
Komentar (0)

Anda dapat menggunakan overload constructor dari DateTime:

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

Gunakan DateTime.ToUniversalTime metode.

Komentar (1)