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

Неоднозначное локальное время в C#

Неоднозначное время возникает осенью, когда переводят стрелки назад и один и тот же час на циферблате повторяется. Для UTC это два разных момента, а локальная запись выглядит одинаково.

Метод TimeZoneInfo.IsAmbiguousTime проверяет, попадает ли локальное время в такой повторяющийся час. В него передают DateTime с DateTimeKind.Unspecified: это показания часов, а не готовый момент UTC.

Проверим момент 2024-10-27 02:30 в поясе процесса. Там, где в эту ночь часы переводят назад, момент неоднозначен. Если пояс этот час не повторяет, проверка ложна:

TimeZoneInfo zone = TimeZoneInfo.Local; DateTime candidate = new DateTime(2024, 10, 27, 2, 30, 0, DateTimeKind.Unspecified); Console.WriteLine(zone.IsAmbiguousTime(candidate));

Для пояса процесса проверьте момент 2024-11-03 01:30:00 и выведите результат проверки.

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