Compartir vía


TimeZoneInfo.IsDaylightSavingTime Método

Definición

Indica si una fecha y hora especificadas están en el intervalo de horario de verano de la zona horaria del objeto TimeZoneInfo actual.

Sobrecargas

IsDaylightSavingTime(DateTime)

Indica si una fecha y hora especificadas están en el intervalo de horario de verano de la zona horaria del objeto TimeZoneInfo actual.

IsDaylightSavingTime(DateTimeOffset)

Indica si una fecha y hora especificadas están en el intervalo de horario de verano de la zona horaria del objeto TimeZoneInfo actual.

IsDaylightSavingTime(DateTime)

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

Indica si una fecha y hora especificadas están en el intervalo de horario de verano de la zona horaria del objeto TimeZoneInfo actual.

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

Valor de fecha y hora.

Devoluciones

Es true si el parámetro dateTime corresponde al horario de verano; en caso contrario, es false.

Excepciones

La propiedad Kind del valor dateTime es Local y dateTime es una hora no válida.

Ejemplos

En el ejemplo siguiente se define un método denominado DisplayDateWithTimeZoneName que usa el método para determinar si se debe mostrar el TimeZoneInfo.IsDaylightSavingTime nombre de hora estándar de una zona horaria o el nombre del horario de verano.

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

Comentarios

El valor devuelto de TimeZoneInfo.IsDaylightSavingTime se ve afectado por la relación entre la zona horaria representada por el TimeZoneInfo objeto y la Kind propiedad del dateTime parámetro, como se muestra en la tabla siguiente.

TimeZoneInfo (objeto) Propiedad DateTime.Kind Resultado
TimeZoneInfo.Local DateTimeKind.Local Determina si dateTime el horario de verano es el horario de verano.
TimeZoneInfo.Local DateTimeKind.Utc dateTime Convierte de la hora universal coordinada (UTC) a la hora local y determina si es horario de verano.
TimeZoneInfo.Local DateTimeKind.Unspecified Supone que dateTime representa la hora local y determina si es horario de verano.
TimeZoneInfo.Utc DateTimeKind.Local, DateTimeKind.Unspecifiedo DateTimeKind.Utc Devuelve false (UTC no admite el horario de verano).
Cualquier otro TimeZoneInfo objeto. DateTimeKind.Local Convierte la hora local en la hora equivalente del TimeZoneInfo objeto y, a continuación, determina si este último es el horario de verano.
Cualquier otro TimeZoneInfo objeto. DateTimeKind.Utc Convierte UTC en la hora equivalente del TimeZoneInfo objeto y, a continuación, determina si este último es el horario de verano.
Cualquier otro TimeZoneInfo objeto. DateTimeKind.Unspecified Determina si dateTime el horario de verano es el horario de verano.

Si la zona horaria representada por el TimeZoneInfo objeto no admite el horario de verano, el método siempre devuelve false. Varias zonas horarias, como Utc, no observan el horario de verano. Para determinar si una zona horaria admite el horario de verano, recupere el valor de su SupportsDaylightSavingTime propiedad .

Si el dateTime parámetro especifica una hora ambigua en la zona horaria del objeto actual, el TimeZoneInfo.IsDaylightSavingTime método interpreta dateTime como hora estándar y devuelve false si su Kind propiedad es DateTimeKind.Local o DateTimeKind.Unspecified. Si la Kind propiedad es DateTimeKind.Utc, este método seleccionará la hora ambigua correcta e indicará si es un horario de verano.

Dado que el TimeZoneInfo.IsDaylightSavingTime(DateTime) método puede devolver false una fecha y hora ambiguas (es decir, una fecha y hora que puede representar una hora estándar o un horario de verano en una zona horaria determinada), el TimeZoneInfo.IsAmbiguousTime(DateTime) método se puede emparejar con el IsDaylightSavingTime(DateTime) método para determinar si una hora puede ser un horario de verano. Dado que una hora ambigua es una que puede ser un horario de verano y una hora estándar, se puede llamar primero al IsAmbiguousTime(DateTime) método para determinar si una fecha y hora pueden ser un horario de verano. Si el método devuelve false, IsDaylightSavingTime(DateTime) se puede llamar al método para determinar si el DateTime valor es un horario de verano. En el ejemplo siguiente se muestra 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).

Si el dateTime parámetro especifica una hora no válida, la llamada al método produce un ArgumentException si el valor de la dateTime propiedad del Kind parámetro es DateTimeKind.Local; de lo contrario, el método devuelve false.

Llame al TimeZoneInfo.IsDaylightSavingTime método para determinar si se debe usar el valor de StandardName una zona horaria o su DaylightName valor al mostrar el nombre de la zona horaria. Consulte la sección Ejemplo para obtener una ilustración.

Consulte también

Se aplica a

IsDaylightSavingTime(DateTimeOffset)

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

Indica si una fecha y hora especificadas están en el intervalo de horario de verano de la zona horaria del objeto TimeZoneInfo actual.

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

Valor de fecha y hora.

Devoluciones

Es true si el parámetro dateTimeOffset corresponde al horario de verano; en caso contrario, es false.

Comentarios

El valor devuelto de TimeZoneInfo.IsDaylightSavingTime se ve afectado por la relación entre la zona horaria representada por el TimeZoneInfo objeto y la Offset propiedad del dateTimeOffset parámetro . Si dateTimeOffset no se corresponde con el desplazamiento de la zona horaria actual de la hora universal coordinada (UTC), el método convierte esa hora en la hora en la zona horaria actual. A continuación, determina si esa fecha y hora es un horario de verano.

Si la zona horaria representada por el TimeZoneInfo objeto no admite el horario de verano, el método siempre devuelve false. Para determinar si una zona horaria admite el horario de verano, recupere el valor de su SupportsDaylightSavingTime propiedad .

Consulte también

Se aplica a