TimeZoneInfo.IsDaylightSavingTime Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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.