Свойство DateTimeOffset.UtcDateTime
Свойство UtcDateTime переводит
часы в UTC, в отличие от DateTime,
где циферблат не меняется. Местный
вид -
LocalDateTime.
Синтаксис
DateTime utc = dateTimeOffset.UtcDateTime;
Пример
Давайте переведём 3:04:05
со смещением +3 в UTC:
using System;
class Program
{
static void Main()
{
var dto = new DateTimeOffset(
2020, 1, 2, 3, 4, 5, TimeSpan.FromHours(3));
DateTime utc = dto.UtcDateTime;
Console.WriteLine(utc.Hour);
Console.WriteLine(utc.Minute);
Console.WriteLine(utc.Kind == DateTimeKind.Utc);
}
}
Результат выполнения кода:
0
4
True
Пример
Давайте сравнить UtcDateTime
до и после ToOffset:
using System;
class Program
{
static void Main()
{
var dto = new DateTimeOffset(
2020, 1, 2, 3, 4, 5, TimeSpan.FromHours(3));
DateTime before = dto.UtcDateTime;
DateTimeOffset shifted = dto.ToOffset(TimeSpan.Zero);
bool res = before == shifted.UtcDateTime;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте убедиться, что исходный
DateTime всё ещё показывает 3 часа:
using System;
class Program
{
static void Main()
{
var dto = new DateTimeOffset(
2020, 1, 2, 3, 4, 5, TimeSpan.FromHours(3));
dto.UtcDateTime.ToString();
Console.WriteLine(dto.DateTime.Hour);
}
}
Результат выполнения кода:
3
Смотрите также
-
LocalDateTime,
местные часы -
Offset,
смещение значения -
DateTimeOffset,
сравнение моментов -
DateTime.ToString,
выводDateTime