TimeZoneInfo.IsDaylightSavingTime Метод

Определение

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

Перегрузки

Имя Описание
IsDaylightSavingTime(DateTime)

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

IsDaylightSavingTime(DateTimeOffset)

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

IsDaylightSavingTime(DateTime)

Исходный код:
TimeZoneInfo.cs
Исходный код:
TimeZoneInfo.cs
Исходный код:
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.

Исключения

Свойство KinddateTime значения равно 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.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 объектом и Offset свойством dateTimeOffset параметра. Если dateTimeOffset не соответствует смещение текущего часового пояса от координированного универсального времени (UTC), метод преобразует это время в время в текущем часовом поясе. Затем определяет, является ли эта дата и время временем летнего времени.

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

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

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