TimeZoneInfo.IsDaylightSavingTime Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Indica se uma data e hora especificadas estão no intervalo de horário de verão do fuso horário do objeto TimeZoneInfo atual.
Sobrecargas
IsDaylightSavingTime(DateTime) |
Indica se uma data e hora especificada estão no intervalo de horário de verão do fuso horário do atual objeto TimeZoneInfo. |
IsDaylightSavingTime(DateTimeOffset) |
Indica se uma data e hora especificada estão no intervalo de horário de verão do fuso horário do atual objeto TimeZoneInfo. |
IsDaylightSavingTime(DateTime)
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
Indica se uma data e hora especificada estão no intervalo de horário de verão do fuso horário do atual objeto TimeZoneInfo.
public:
bool IsDaylightSavingTime(DateTime dateTime);
public bool IsDaylightSavingTime (DateTime dateTime);
member this.IsDaylightSavingTime : DateTime -> bool
Public Function IsDaylightSavingTime (dateTime As DateTime) As Boolean
Parâmetros
- dateTime
- DateTime
Um valor de data e hora.
Retornos
true
se o parâmetro dateTime
for um horário de verão; caso contrário, false
.
Exceções
Exemplos
O exemplo a seguir define um método chamado DisplayDateWithTimeZoneName
que usa o TimeZoneInfo.IsDaylightSavingTime método para determinar se o nome de horário padrão de um fuso horário ou o nome do horário de verão deve ser exibido.
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
Comentários
O valor retornado de TimeZoneInfo.IsDaylightSavingTime é afetado pela relação entre o fuso horário representado pelo TimeZoneInfo objeto e a Kind propriedade do dateTime
parâmetro , como mostra a tabela a seguir.
Objeto TimeZoneInfo | Propriedade DateTime.Kind | Result |
---|---|---|
TimeZoneInfo.Local | DateTimeKind.Local |
Determina se dateTime é horário de verão. |
TimeZoneInfo.Local | DateTimeKind.Utc |
dateTime Converte de UTC (Tempo Universal Coordenado) em hora local e determina se é horário de verão. |
TimeZoneInfo.Local | DateTimeKind.Unspecified |
Pressupõe que dateTime representa a hora local e determina se é horário de verão. |
TimeZoneInfo.Utc |
DateTimeKind.Local , DateTimeKind.Unspecified ou DateTimeKind.Utc |
Retorna false (UTC não dá suporte ao horário de verão). |
Qualquer outro TimeZoneInfo objeto. | DateTimeKind.Local |
Converte a hora local para a hora equivalente do TimeZoneInfo objeto e, em seguida, determina se o último é horário de verão. |
Qualquer outro TimeZoneInfo objeto. | DateTimeKind.Utc |
Converte UTC no horário equivalente do TimeZoneInfo objeto e, em seguida, determina se este último é horário de verão. |
Qualquer outro TimeZoneInfo objeto. | DateTimeKind.Unspecified |
Determina se dateTime é horário de verão. |
Se o fuso horário representado pelo objeto não der suporte ao TimeZoneInfo horário de verão, o método sempre retornará false
. Vários fusos horários, incluindo Utc, não observam o horário de verão. Para determinar se um fuso horário dá suporte ao horário de verão, recupere o valor de sua SupportsDaylightSavingTime propriedade.
Se o dateTime
parâmetro especificar uma hora ambígua no fuso horário do objeto atual, o TimeZoneInfo.IsDaylightSavingTime método interpretará dateTime
como hora padrão e retornará false
se sua Kind propriedade for DateTimeKind.Local ou DateTimeKind.Unspecified. Se a Kind propriedade for DateTimeKind.Utc, esse método selecionará o horário ambíguo correto e indicará se é um horário de verão.
Como o TimeZoneInfo.IsDaylightSavingTime(DateTime) método pode retornar false
para uma data e hora ambíguas (ou seja, uma data e hora que podem representar uma hora padrão ou um horário de verão em um fuso horário específico), o TimeZoneInfo.IsAmbiguousTime(DateTime) método pode ser emparelhado com o IsDaylightSavingTime(DateTime) método para determinar se uma hora pode ser um horário de verão. Como um horário ambíguo é aquele que pode ser um horário de verão e um horário padrão, o IsAmbiguousTime(DateTime) método pode ser chamado primeiro para determinar se uma data e hora podem ser um horário de verão. Se o método retornar false
, o IsDaylightSavingTime(DateTime) método poderá ser chamado para determinar se o DateTime valor é um horário de verão. O exemplo a seguir ilustra essa técnica.
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).
Se o dateTime
parâmetro especificar uma hora inválida, a chamada de método gerará um ArgumentException se o valor da dateTime
propriedade do Kind parâmetro for DateTimeKind.Local; caso contrário, o método retornará false
.
Chame o TimeZoneInfo.IsDaylightSavingTime método para determinar se deve usar o valor de StandardName um fuso horário ou seu DaylightName valor ao exibir o nome do fuso horário. Consulte a seção Exemplo para obter uma ilustração.
Confira também
Aplica-se a
IsDaylightSavingTime(DateTimeOffset)
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
- Origem:
- TimeZoneInfo.cs
Indica se uma data e hora especificada estão no intervalo de horário de verão do fuso horário do atual objeto TimeZoneInfo.
public:
bool IsDaylightSavingTime(DateTimeOffset dateTimeOffset);
public bool IsDaylightSavingTime (DateTimeOffset dateTimeOffset);
member this.IsDaylightSavingTime : DateTimeOffset -> bool
Public Function IsDaylightSavingTime (dateTimeOffset As DateTimeOffset) As Boolean
Parâmetros
- dateTimeOffset
- DateTimeOffset
Um valor de data e hora.
Retornos
true
se o parâmetro dateTimeOffset
for um horário de verão; caso contrário, false
.
Comentários
O valor retornado de TimeZoneInfo.IsDaylightSavingTime é afetado pela relação entre o fuso horário representado pelo TimeZoneInfo objeto e a Offset propriedade do dateTimeOffset
parâmetro . Se dateTimeOffset
não corresponder ao deslocamento do fuso horário atual do UTC (Tempo Universal Coordenado), o método converterá essa hora para a hora no fuso horário atual. Em seguida, ele determina se essa data e hora é um horário de verão.
Se o fuso horário representado pelo objeto não der suporte ao TimeZoneInfo horário de verão, o método sempre retornará false
. Para determinar se um fuso horário dá suporte ao horário de verão, recupere o valor de sua SupportsDaylightSavingTime propriedade.