Ответ 1
Используйте TimeZoneInfo
:
TimeSpan delta = TimeZoneInfo.Local.GetUtcOffset();
double utcMinuteOffset = delta.TotalMinutes;
Как я могу получить разницу между местным временем и временем UTC в минутах (в С#).
Спасибо.
Используйте TimeZoneInfo
:
TimeSpan delta = TimeZoneInfo.Local.GetUtcOffset();
double utcMinuteOffset = delta.TotalMinutes;
Это должно дать вам то, что вам нужно.
(DateTime.UtcNow - DateTime.Now).TotalMinutes;
Также вы можете использовать функцию .ToUniversalTime
DateTime.
Еще одна версия:
DateTimeOffset.Now.Offset.TotalMinutes
Response.Write((DateTime.Now - DateTime.UtcNow).TotalMinutes);
Подробнее см. эту статью в MSDN. Образец кода в конце статьи явно дает код, чтобы получить разницу между локальным и временем UTC.
Для тех, кто не хочет щелкнуть ссылку, здесь выдержка из этого кода:
// 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);
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());