Ler em inglês

Compartilhar via


TimeZoneInfo.IsDaylightSavingTime Método

Definição

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.

C#
public bool IsDaylightSavingTime(DateTime dateTime);

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

A propriedade Kind do valor dateTime é Local e dateTime é uma hora inválida.

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.

C#
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

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.

C#
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).

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

.NET 10 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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.

C#
public bool IsDaylightSavingTime(DateTimeOffset dateTimeOffset);

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.

Confira também

Aplica-se a

.NET 10 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0