Метод DateTime.ToUniversalTime
Метод ToUniversalTime меняет
Kind на Utc и сдвигает
часы с учётом пояса, если исходное
время местное. Для уже UTC-сметки
тики не меняются. Метка без перевода -
SpecifyKind.
Обратно -
ToLocalTime.
Синтаксис
DateTime utc = dateTime.ToUniversalTime();
Пример
Давайте переведём базовый dt
и проверим Kind:
using System;
class Program
{
static void Main()
{
var dt = new DateTime(2020, 1, 2, 3, 4, 5);
DateTime res = dt.ToUniversalTime();
Console.WriteLine(res.Kind == DateTimeKind.Utc);
}
}
Результат выполнения кода:
True
Пример
Давайте вызовем ToUniversalTime
для времени, уже помеченного как UTC:
using System;
class Program
{
static void Main()
{
var dt = DateTime.SpecifyKind(
new DateTime(2020, 1, 2, 3, 4, 5), DateTimeKind.Utc);
DateTime res = dt.ToUniversalTime();
bool ok = res.Ticks == dt.Ticks;
Console.WriteLine(ok);
}
}
Результат выполнения кода:
True
Пример
Давайте убедимся, что исходный dt
не меняет Kind:
using System;
class Program
{
static void Main()
{
var dt = new DateTime(2020, 1, 2, 3, 4, 5);
dt.ToUniversalTime();
Console.WriteLine(dt.Kind == DateTimeKind.Unspecified);
}
}
Результат выполнения кода:
True
Смотрите также
-
ToLocalTime,
местное время -
SpecifyKind,
только меткаKind -
AddHours,
сдвиг часов вручную -
Compare,
сравнение моментов