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
.
Исключения
Примеры
В следующем примере определяется метод с именем 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 свойства .