Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
874 of 1492 menu
◀ ▶

Метод DateTimeOffset.ToOffset

Метод ToOffset не сдвигает момент в UTC: меняются только отображаемые часы и Offset. Сравнить UTC до и после можно через UtcDateTime.

Синтаксис

DateTimeOffset shifted = dateTimeOffset.ToOffset(TimeSpan.Zero);

Пример

Давайте перевести 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)); DateTimeOffset res = dto.ToOffset(TimeSpan.Zero); Console.WriteLine(res.Hour); Console.WriteLine(res.Minute); Console.WriteLine(res.Second); Console.WriteLine(res.Offset == TimeSpan.Zero); } }

Результат выполнения кода:

0 4 5 True

Пример

Давайте убедиться, что UtcDateTime не изменился:

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

Пример

Давайте проверить, что исходный dto не меняется:

using System; class Program { static void Main() { var dto = new DateTimeOffset( 2020, 1, 2, 3, 4, 5, TimeSpan.FromHours(3)); dto.ToOffset(TimeSpan.Zero); Console.WriteLine(dto.Hour); } }

Результат выполнения кода:

3

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить