Saati değiştirmeden C # DateTime to UTC Time


124

Gerçek saati değiştirmeden önceden var olan bir tarih saatini UTC saatine nasıl dönüştürebilirim?

Misal:

DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm

Var mısın PST ? Nasıl PSTdeğer elde edersiniz ?
Kiquenet

Yanıtlar:


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

itibaren

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

DateTime.SpecifyKindStatik yöntemi kullanın .

Belirtilen DateTime ile aynı sayıda onay işaretine sahip, ancak belirtilen DateTimeKind değeriyle belirtildiği gibi yerel saat, Koordineli Evrensel Saat (UTC) veya hiçbiri olarak atanan yeni bir DateTime nesnesi oluşturur.

Misal:

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

Şunun aşırı yüklenmiş yapıcısını kullanabilirsiniz DateTime:

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

0

Bunu şu şekilde de yapabilirsiniz:

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

Bu beklendiği gibi çalışmayabilir. Deneyin ... new DateTime(dateTime.Year, dateTime.Month, dateTime.dateTimeay, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime().ToString() vs DateTime.SpecifyKind(dateTime, DateTimeKind.Utc).ToString() Farklı sonuçlar aldığınızı göreceksiniz.
Homer

-7

DateTime.ToUniversalTimeYöntemi kullanın .


3
tarih saatini 23:00 olarak değiştirir (PST'deyim)
saatini
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.