Поделиться через


TimeZoneInfo.IsDaylightSavingTime Метод

Определение

Указывает, попадают ли заданные дата и время в диапазон летнего времени для часового пояса текущего объекта TimeZoneInfo.

Перегрузки

IsDaylightSavingTime(DateTime)

Указывает, попадают ли заданные дата и время в диапазон летнего времени для часового пояса текущего объекта TimeZoneInfo.

IsDaylightSavingTime(DateTimeOffset)

Указывает, попадают ли заданные дата и время в диапазон летнего времени для часового пояса текущего объекта TimeZoneInfo.

IsDaylightSavingTime(DateTime)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Указывает, попадают ли заданные дата и время в диапазон летнего времени для часового пояса текущего объекта TimeZoneInfo.

public:
 bool IsDaylightSavingTime(DateTime dateTime);
public bool IsDaylightSavingTime (DateTime dateTime);
member this.IsDaylightSavingTime : DateTime -> bool
Public Function IsDaylightSavingTime (dateTime As DateTime) As Boolean

Параметры

dateTime
DateTime

Значение даты и времени.

Возвращаемое значение

Значение true, если параметр dateTime относится к летнему времени; в противном случае — значение false.

Исключения

Свойство Kind значения dateTime — Local, а dateTime — недопустимое время.

Примеры

В следующем примере определяется метод с именем DisplayDateWithTimeZoneName , который использует TimeZoneInfo.IsDaylightSavingTime метод для определения того, следует ли отображать стандартное имя часового пояса или имя летнего времени.

private void DisplayDateWithTimeZoneName(DateTime date1, TimeZoneInfo timeZone)
{
   Console.WriteLine("The time is {0:t} on {0:d} {1}", 
                     date1, 
                     timeZone.IsDaylightSavingTime(date1) ?
                         timeZone.DaylightName : timeZone.StandardName);   
}
// The example displays output similar to the following:
//    The time is 1:00 AM on 4/2/2006 Pacific Standard Time
let displayDateWithTimeZoneName (date1: DateTime) (timeZone: TimeZoneInfo) =
    printfn $"The time is {date1:t} on {date1:d} {if timeZone.IsDaylightSavingTime date1 then timeZone.DaylightName else timeZone.StandardName}" 
// The example displays output similar to the following:
//    The time is 1:00 AM on 4/2/2006 Pacific Standard Time
Private Sub DisplayDateWithTimeZoneName(date1 As Date, timeZone As TimeZoneInfo)
   Console.WriteLine("The time is {0:t} on {0:d} {1}", _
                     date1, _
                     IIf(timeZone.IsDaylightSavingTime(date1), _
                         timezone.DaylightName, timezone.StandardName))   
End Sub
' The example displays output similar to the following:
'    The time is 1:00 AM on 4/2/2006 Pacific Standard Time

Комментарии

На возвращаемое значение TimeZoneInfo.IsDaylightSavingTime влияет связь между часовыми поясами, представленными TimeZoneInfo объектом , и Kind свойством dateTime параметра, как показано в следующей таблице.

Объект TimeZoneInfo Свойство DateTime.Kind Результат
TimeZoneInfo.Local DateTimeKind.Local Определяет, является ли dateTime переход на летнее время.
TimeZoneInfo.Local DateTimeKind.Utc dateTime Преобразует время в формате UTC в местное время и определяет, является ли оно переходным на летнее время.
TimeZoneInfo.Local DateTimeKind.Unspecified Предполагается, что dateTime представляет местное время и определяет, является ли оно переходным на летнее время.
TimeZoneInfo.Utc DateTimeKind.Local, DateTimeKind.Unspecifiedили DateTimeKind.Utc Возвращает false (UTC не поддерживает летнее время).
Любой другой TimeZoneInfo объект. DateTimeKind.Local Преобразует местное время в эквивалент TimeZoneInfo времени объекта, а затем определяет, является ли последнее летнее время.
Любой другой TimeZoneInfo объект. DateTimeKind.Utc Преобразует время в формате UTC в эквивалентном TimeZoneInfo времени объекта, а затем определяет, является ли последний переход на летнее время.
Любой другой TimeZoneInfo объект. DateTimeKind.Unspecified Определяет, является ли dateTime переход на летнее время.

Если часовой пояс, представленный TimeZoneInfo объектом, не поддерживает летнее время, метод всегда возвращает false. Некоторые часовые пояса, включая Utc, не соблюдают летнее время. Чтобы определить, поддерживает ли часовой пояс летнее время, получите значение его SupportsDaylightSavingTime свойства .

dateTime Если параметр задает неоднозначное время в часовом поясе текущего объекта, TimeZoneInfo.IsDaylightSavingTime метод интерпретирует dateTime как стандартное время и возвращает значение false , если его Kind свойство имеет значение DateTimeKind.Local или DateTimeKind.Unspecified. Kind Если свойство имеет значение DateTimeKind.Utc, этот метод выбирает правильное неоднозначное время и указывает, является ли оно переходным на летнее время.

TimeZoneInfo.IsDaylightSavingTime(DateTime) Поскольку метод может возвращать false для даты и времени, которые являются неоднозначными (то есть даты и времени, которые могут представлять либо стандартное время, либо летнее время в определенном часовом поясе), TimeZoneInfo.IsAmbiguousTime(DateTime) метод можно связать с IsDaylightSavingTime(DateTime) методом , чтобы определить, может ли время быть переходом на летнее время. Так как неоднозначное время может быть как летнее, так и стандартное время, метод может быть вызван первым, IsAmbiguousTime(DateTime) чтобы определить, могут ли дата и время переходить на летнее время. Если метод возвращает false, IsDaylightSavingTime(DateTime) метод можно вызвать, чтобы определить, является ли DateTime значение переходным на летнее время. В следующем примере показан этот метод.

DateTime unclearDate = new DateTime(2007, 11, 4, 1, 30, 0);
// Test if time is ambiguous.
Console.WriteLine("In the {0}, {1} is {2}ambiguous.", 
                  TimeZoneInfo.Local.DisplayName, 
                  unclearDate, 
                  TimeZoneInfo.Local.IsAmbiguousTime(unclearDate) ? "" : "not ");
// Test if time is DST.
Console.WriteLine("In the {0}, {1} is {2}daylight saving time.", 
                  TimeZoneInfo.Local.DisplayName, 
                  unclearDate, 
                  TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate) ? "" : "not ");
Console.WriteLine();    
// Report time as DST if it is either ambiguous or DST.
if (TimeZoneInfo.Local.IsAmbiguousTime(unclearDate) || 
    TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate))
    Console.WriteLine("{0} may be daylight saving time in {1}.", 
                      unclearDate, TimeZoneInfo.Local.DisplayName);  
// The example displays the following output:
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is ambiguous.
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is not daylight saving time.
//    
//    11/4/2007 1:30:00 AM may be daylight saving time in (GMT-08:00) Pacific Time (US & Canada).
let unclearDate = DateTime(2007, 11, 4, 1, 30, 0)
// Test if time is ambiguous.
printfn $"""In the {TimeZoneInfo.Local.DisplayName}, {unclearDate} is {if TimeZoneInfo.Local.IsAmbiguousTime unclearDate then "" else "not "}ambiguous."""
// Test if time is DST.
printfn $"""In the {TimeZoneInfo.Local.DisplayName}, {unclearDate} is {if TimeZoneInfo.Local.IsDaylightSavingTime unclearDate then "" else "not "}daylight saving time.
"""
// Report time as DST if it is either ambiguous or DST.
if TimeZoneInfo.Local.IsAmbiguousTime unclearDate || TimeZoneInfo.Local.IsDaylightSavingTime unclearDate then
    printfn $"{unclearDate} may be daylight saving time in {TimeZoneInfo.Local.DisplayName}."

// The example displays the following output:
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is ambiguous.
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is not daylight saving time.
//    
//    11/4/2007 1:30:00 AM may be daylight saving time in (GMT-08:00) Pacific Time (US & Canada).
Dim unclearDate As Date = #11/4/2007 1:30AM#
' Test if time is ambiguous.
Console.WriteLine("In the {0}, {1} is {2}ambiguous.", _ 
                  TimeZoneInfo.Local.DisplayName, _
                  unclearDate, _
                  IIf(TimeZoneInfo.Local.IsAmbiguousTime(unclearDate), "", "not "))
' Test if time is DST.
Console.WriteLine("In the {0}, {1} is {2}daylight saving time.", _ 
                  TimeZoneInfo.Local.DisplayName, _
                  unclearDate, _
                  IIf(TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate), "", "not "))
Console.WriteLine()    
' Report time as DST if it is either ambiguous or DST.
If TimeZoneInfo.Local.IsAmbiguousTime(unclearDate) OrElse _ 
   TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate) Then
    Console.WriteLine("{0} may be daylight saving time in {1}.", _ 
                      unclearDate, TimeZoneInfo.Local.DisplayName)                                           
End If
' The example displays the following output:
'    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is ambiguous.
'    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is not daylight saving time.
'    
'    11/4/2007 1:30:00 AM may be daylight saving time in (GMT-08:00) Pacific Time (US & Canada).

dateTime Если параметр указывает недопустимое время, вызов метода вызывает исключение ArgumentException , если значение dateTime свойства параметра Kind равно DateTimeKind.Local; в противном случае метод возвращает false.

Вызовите метод , TimeZoneInfo.IsDaylightSavingTime чтобы определить, следует ли использовать значение часового пояса StandardName или его DaylightName значение при отображении имени часового пояса. Иллюстрацию см. в разделе Пример.

См. также раздел

Применяется к

IsDaylightSavingTime(DateTimeOffset)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs

Указывает, попадают ли заданные дата и время в диапазон летнего времени для часового пояса текущего объекта TimeZoneInfo.

public:
 bool IsDaylightSavingTime(DateTimeOffset dateTimeOffset);
public bool IsDaylightSavingTime (DateTimeOffset dateTimeOffset);
member this.IsDaylightSavingTime : DateTimeOffset -> bool
Public Function IsDaylightSavingTime (dateTimeOffset As DateTimeOffset) As Boolean

Параметры

dateTimeOffset
DateTimeOffset

Значение даты и времени.

Возвращаемое значение

Значение true, если параметр dateTimeOffset относится к летнему времени; в противном случае — значение false.

Комментарии

На возвращаемое значение TimeZoneInfo.IsDaylightSavingTime влияет связь между часовой поясом, представленным TimeZoneInfo объектом , и свойством OffsetdateTimeOffset параметра . Если dateTimeOffset значение не соответствует смещению текущего часового пояса от utc, метод преобразует это время в время текущего часового пояса. Затем он определяет, являются ли эти дата и время переходными на летнее время.

Если часовой пояс, представленный TimeZoneInfo объектом, не поддерживает летнее время, метод всегда возвращает false. Чтобы определить, поддерживает ли часовой пояс летнее время, получите значение его SupportsDaylightSavingTime свойства .

См. также раздел

Применяется к