Comparteix a través de


TimeZoneInfo.IsInvalidTime(DateTime) Método

Definición

Indica si una fecha y hora determinadas no son válidas.

public:
 bool IsInvalidTime(DateTime dateTime);
public bool IsInvalidTime (DateTime dateTime);
member this.IsInvalidTime : DateTime -> bool
Public Function IsInvalidTime (dateTime As DateTime) As Boolean

Parámetros

dateTime
DateTime

Valor de fecha y hora.

Devoluciones

Boolean

Es true si dateTime no es válida; en caso contrario, es false.

Ejemplos

En la zona horaria del Pacífico, el horario de verano comienza a las 2:00 a.m. el 2 de abril de 2006. El código siguiente pasa el tiempo a intervalos de un minuto desde las 1:59 A.M. el 2 de abril de 2006 a las 3:01 A.M. el 2 de abril de 2006, al IsInvalidTime método de un TimeZoneInfo objeto que representa la zona horaria del Pacífico. La salida de la consola indica que todas las veces desde las 2:00 A.M. el 2 de abril de 2006 a las 2:59 A.M. el 2 de abril de 2006, no son válidos.

// Specify DateTimeKind in Date constructor
DateTime baseTime = new DateTime(2007, 3, 11, 1, 59, 0, DateTimeKind.Unspecified);
DateTime newTime;

// Get Pacific Standard Time zone
TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");

// List possible invalid times for a 63-minute interval, from 1:59 AM to 3:01 AM
for (int ctr = 0; ctr < 63; ctr++)
{
   // Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
   newTime = baseTime.AddMinutes(ctr);
   Console.WriteLine("{0} is invalid: {1}", newTime, pstZone.IsInvalidTime(newTime));
}
// Specify DateTimeKind in Date constructor
let baseTime = DateTime(2007, 3, 11, 1, 59, 0, DateTimeKind.Unspecified)

// Get Pacific Standard Time zone
let pstZone = TimeZoneInfo.FindSystemTimeZoneById "Pacific Standard Time"

// List possible invalid times for a 63-minute interval, from 1:59 AM to 3:01 AM
for i = 0 to 62 do
    // Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
    let newTime = baseTime.AddMinutes i
    printfn $"{newTime} is invalid: {pstZone.IsInvalidTime newTime}"
' Specify DateTimeKind in Date constructor
Dim baseTime As New Date(2007, 3, 11, 1, 59, 0, DateTimeKind.Unspecified)
Dim newTime As Date

' Get Pacific Standard Time zone
Dim pstZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")

' List possible invalid times for 63-minute interval, from 1:59 AM to 3:01 AM
For ctr As Integer = 0 To 62
   ' Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
   newTime = baseTime.AddMinutes(ctr)
   Console.WriteLine("{0} is invalid: {1}", newTime, pstZone.IsInvalidTime(newTime))
Next

Comentarios

Una hora no válida se encuentra dentro de un intervalo de horas para la zona horaria actual que no se puede asignar a la hora universal coordinada (UTC) debido a la aplicación de una regla de ajuste. Normalmente, las horas no válidas se producen cuando el tiempo avanza para el horario de verano. Consulte la sección Ejemplo para obtener una ilustración.

El valor de la Kind propiedad del dateTime parámetro afecta a si dateTime representa una hora no válida, como se muestra en la tabla siguiente.

Propiedad DateTime.Kind Objeto TimeZoneInfo (si procede) Comportamiento
DateTimeKind.Local TimeZoneInfo.Local Determina si la hora no es válida.
DateTimeKind.Local TimeZoneInfo.Utc o una zona horaria no local. dateTime Convierte en la hora del TimeZoneInfo objeto y devuelve false.
DateTimeKind.Unspecified No es aplicable. dateTime Se supone que es el tiempo del TimeZoneInfo objeto y determina si no es válido.
DateTimeKind.Utc No es aplicable. Devuelve false.

Se aplica a

Consulte también