TimeZoneInfo.IsDaylightSavingTime Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.Unspecified o 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 .