Метод IsDaylightSavingTime
Метод IsDaylightSavingTime
учитывает правила пояса. У
Utc
ответ всегда false.
Для Local
на конкретную дату результат на
разных машинах разный - его в
примерах не фиксируют.
Синтаксис
bool summer = timeZone.IsDaylightSavingTime(dateTime);
Пример
Давайте спросить у Utc
про лето:
using System;
class Program
{
static void Main()
{
var when = new DateTime(2020, 7, 1, 12, 0, 0);
bool res = TimeZoneInfo.Utc.IsDaylightSavingTime(when);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте проверить пояс без правил перехода:
using System;
class Program
{
static void Main()
{
var zone = TimeZoneInfo.CreateCustomTimeZone(
"abcde", TimeSpan.FromHours(3), "abcde", "abcde");
var when = new DateTime(2020, 7, 1, 12, 0, 0);
bool res = zone.IsDaylightSavingTime(when);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Пример
Давайте повторить проверку для
зимней даты в Utc:
using System;
class Program
{
static void Main()
{
var when = new DateTime(2020, 1, 15, 8, 0, 0);
bool res = TimeZoneInfo.Utc.IsDaylightSavingTime(when);
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Смотрите также
-
BaseUtcOffset,
зимнее смещение -
ConvertTime,
перевод момента -
TimeSpan,
длина сдвига -
DateTimeOffset,
момент на циферблате