2012-01-24 62 views

Trả lời

18

Sử dụng TimeZoneInfo:

TimeSpan delta = TimeZoneInfo.Local.GetUtcOffset(); 
double utcMinuteOffset = delta.TotalMinutes; 
+7

'GetUtcOffset (...)' lấy một tham số, vì vậy nó có thể giúp đưa nó vào ví dụ. Chẳng hạn như ... 'TimeSpan utcOffset = TimeZoneInfo.Local.GetUtcOffset (DateTime.Now);' – jocull

7

Điều này sẽ cung cấp cho bạn những gì bạn cần.

(DateTime.UtcNow - DateTime.Now).TotalMinutes; 

Bạn cũng có thể tìm thấy chức năng sử dụng .ToUniversalTime DateTime.

+1

Tôi nghĩ rằng bạn có các giá trị được đảo ngược, phải là (DateTime.Now - DateTime.UtcNow) .TotalMinutes; – dlchambers

0

Xem this MSDN artice cho đầy đủ các chi tiết. Mẫu mã ở cuối bài viết rõ ràng cung cấp cho mã để có được sự khác biệt giữa thời gian địa phương và UTC.

Đối với những người không muốn nhấp vào liên kết ở đây là một đoạn trích từ mã rằng:

// Find difference between Date.Now and Date.UtcNow 
    date1 = DateTime.Now; 
    date2 = DateTime.UtcNow; 
    difference = date1 - date2; 
    Console.WriteLine("{0} - {1} = {2}", date1, date2, difference); 
1
Response.Write((DateTime.Now - DateTime.UtcNow).TotalMinutes); 
5

Tuy nhiên, một phiên bản:

DateTimeOffset.Now.Offset.TotalMinutes 
0
DateTime localDt = DateTime.Now; 
DateTime utcDt = DateTime.UtcNow; 
TimeSpan localUtcDiff = utcDt.Subtract(localDt); 
Console.WriteLine("The difference in minutes between local time and UTC time is " + localUtcDiff.TotalMinutes.ToString()); 
Các vấn đề liên quan