Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método TimeZoneInfo.IsDaylightSavingTime (DateTime)

 
System_CAPS_noteObservação

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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.

Namespace:   System
Assembly:  mscorlib (em mscorlib.dll)

public bool IsDaylightSavingTime(
	DateTime dateTime
)

Parâmetros

dateTime
Type: System.DateTime

Um valor de data e hora.

Valor Retornado

Type: System.Boolean

true se o parâmetro dateTime for um horário de verão; caso contrário, false.

Exception Condition
ArgumentException

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

O valor de retorno TimeZoneInfo.IsDaylightSavingTime é afetado pela relação entre o fuso horário representado pelo TimeZoneInfo objeto e o Kind propriedade o dateTime parâmetro, como mostra a tabela a seguir.

Objeto TimeZoneInfo

Propriedade Kind

Resultado

TimeZoneInfo.Local

DateTimeKind.Local

Determina se dateTime é o horário de verão.

TimeZoneInfo.Local

DateTimeKind.Utc

Converte dateTime do tempo Universal Coordenado (UTC) para a hora local e determina se o horário de verão.

TimeZoneInfo.Local

DateTimeKind.Unspecified

Assume que dateTime representa a hora local e determina se ele é o horário de verão.

TimeZoneInfo.Utc

DateTimeKind.Local, DateTimeKind.Unspecified ou DateTimeKind.Utc

Retorna false (UTC não tem suporte para horário de verão).

Qualquer outro TimeZoneInfoobjeto.

DateTimeKind.Local

Converte a hora local para o horário equivalente do TimeZoneInfo do objeto e, em seguida, determina se o último horário de verão.

Qualquer outro TimeZoneInfoobjeto.

DateTimeKind.Utc

Converte o UTC para o horário equivalente do TimeZoneInfo do objeto e, em seguida, determina se o último horário de verão.

Qualquer outro TimeZoneInfoobjeto.

DateTimeKind.Unspecified

Determina se dateTime é o horário de verão.

Se o fuso horário representado pelo TimeZoneInfo objeto não oferece suporte para horário de verão, o método sempre retorna false. Um número de fusos horários, incluindo Utc, não observar o horário de verão. Para determinar se um fuso horário dá suporte a horário de verão, recuperar o valor de seu SupportsDaylightSavingTime propriedade.

Se o dateTime parâmetro especifica um horário ambíguo em fuso horário atual do objeto, o TimeZoneInfo.IsDaylightSavingTime método interpreta dateTime como horário padrão e retorna false se seu Kind é de propriedade DateTimeKind.Local ou DateTimeKind.Unspecified. Se o Kind é de propriedade DateTimeKind.Utc, esse método seleciona a hora ambígua correta e indicar se é um horário de verão.

Porque o TimeZoneInfo.IsDaylightSavingTime(DateTime) método pode retornar false para uma data e hora que é ambígua (ou seja, uma data e hora que pode representar uma hora padrão ou um horário de verão em um determinado fuso horário), o TimeZoneInfo.IsAmbiguousTime(DateTime) método pode ser combinado com o IsDaylightSavingTime(DateTime) método para determinar se uma hora pode ser um horário de verão. Porque um horário ambíguo é aquele que pode ser uma hora padrão, e um horário de verã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 pode 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).

Se o dateTime parâmetro especifica um horário inválido, a chamada do método lança um ArgumentException se o valor da dateTime do parâmetro Kind é de propriedade DateTimeKind.Local; caso contrário, o método retornará false.

Chamar o TimeZoneInfo.IsDaylightSavingTime método para determinar se deve usar um fuso horário StandardName valor ou seu DaylightName valor ao exibir o nome do fuso horário. Consulte a seção de exemplo para obter uma ilustração.

Observações para os Autores de Chamada:

Em sistemas Windows XP, este método aplica apenas a regra de ajuste atual caso a instância atual seja TimeZoneInfo.Local. Como resultado, o método pode não relatar com precisão se dateTime é um horário de verão para períodos antes da regra de ajuste atual foi originada em vigor. Para obter mais informações, consulte que as notas da Seção Chamadores na propriedade Local.

O exemplo a seguir define um método chamado DisplayDateWithTimeZoneName que usa o TimeZoneInfo.IsDaylightSavingTime método para determinar se deve exibir um fuso horário padrão de nome ou nome do horário de verão.

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   

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 3.5
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1
Retornar ao início
Mostrar: