TimeZoneInfo.IsDaylightSavingTime Método

Definição

Indica se uma data e hora especificadas se enquadram no intervalo do horário de verão do fuso horário do objeto atual TimeZoneInfo .

Sobrecargas

Name Description
IsDaylightSavingTime(DateTime)

Indica se uma data e hora especificadas se enquadram no intervalo do horário de verão do fuso horário do objeto atual TimeZoneInfo .

IsDaylightSavingTime(DateTimeOffset)

Indica se uma data e hora especificadas se enquadram no intervalo do horário de verão do fuso horário do objeto atual TimeZoneInfo .

IsDaylightSavingTime(DateTime)

Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs

Indica se uma data e hora especificadas se enquadram no intervalo do horário de verão do fuso horário do objeto atual 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.

Devoluções

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

Exceções

A Kind propriedade do dateTime valor é Local e dateTime é um tempo inválido.

Exemplos

O exemplo seguinte define um método nomeado DisplayDateWithTimeZoneName que utiliza o TimeZoneInfo.IsDaylightSavingTime método para determinar se deve mostrar o nome padrão do fuso horário ou o 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
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

Observações

O valor de retorno 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 seguinte.

Objeto TimeZoneInfo DateTime.Kind propriedade Result
TimeZoneInfo.Local DateTimeKind.Local Determina se dateTime é hora de verão.
TimeZoneInfo.Local DateTimeKind.Utc Converte dateTime do Horário Universal Coordenado (UTC) para o horário local e determina se é hora de verão.
TimeZoneInfo.Local DateTimeKind.Unspecified Assume que representa dateTime a hora local e determina se é o horário de verão.
TimeZoneInfo.Utc DateTimeKind.Local, DateTimeKind.Unspecified ou DateTimeKind.Utc Retornos false (UTC não suporta horário de verão).
Qualquer outro TimeZoneInfo objeto. DateTimeKind.Local Converte a hora local para a hora equivalente ao TimeZoneInfo objeto e depois determina se esta última é a hora de verão.
Qualquer outro TimeZoneInfo objeto. DateTimeKind.Utc Converte o UTC para a hora equivalente do TimeZoneInfo objeto e depois determina se este último é a hora de verão.
Qualquer outro TimeZoneInfo objeto. DateTimeKind.Unspecified Determina se dateTime é hora de verão.

Se o fuso horário representado pelo TimeZoneInfo objeto não suportar o horário de verão, o método devolve falsesempre . Vários fusos horários, incluindo Utc, não respeitam o horário de verão. Para determinar se um fuso horário suporta o horário de verão, recupere o valor da 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 interpreta dateTime como tempo padrão e retorna false se a sua Kind propriedade for DateTimeKind.Local ou DateTimeKind.Unspecified. Se a Kind propriedade for DateTimeKind.Utc, este método selecionará a hora correta e ambígua e indicará se é uma hora de verão.

Como o TimeZoneInfo.IsDaylightSavingTime(DateTime) método pode indicar false uma data e hora ambíguas (ou seja, uma data e hora que podem representar uma hora padrão ou uma hora de verão num 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 uma hora de verão. Como uma hora ambígua é aquela que pode ser tanto uma hora de verão como uma hora padrão, o IsAmbiguousTime(DateTime) método pode ser chamado primeiro para determinar se uma data e hora podem ser uma hora de verão. Se o método devolver false, o IsDaylightSavingTime(DateTime) método pode ser chamado para determinar se o DateTime valor corresponde ao horário de verão. O exemplo seguinte ilustra esta 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 um tempo inválido, a chamada ao método lança um ArgumentException se o valor da dateTime propriedade do Kind parâmetro for DateTimeKind.Local; caso contrário, o método devolve false.

Chame o TimeZoneInfo.IsDaylightSavingTime método para determinar se deve usar o valor de StandardName um fuso horário ou o seu DaylightName valor ao mostrar o nome do fuso horário. Veja a secção Exemplo para uma ilustração.

Ver também

Aplica-se a

IsDaylightSavingTime(DateTimeOffset)

Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs

Indica se uma data e hora especificadas se enquadram no intervalo do horário de verão do fuso horário do objeto atual 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.

Devoluções

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

Observações

O valor de retorno 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 em relação ao Tempo Universal Coordenado (UTC), o método converte essa hora para a hora no fuso horário atual. Depois, determina se essa data e hora correspondem ao horário de verão.

Se o fuso horário representado pelo TimeZoneInfo objeto não suportar o horário de verão, o método devolve falsesempre . Para determinar se um fuso horário suporta o horário de verão, recupere o valor da sua SupportsDaylightSavingTime propriedade.

Ver também

Aplica-se a