TimeZoneInfo.IsInvalidTime(DateTime) Metodo

Definizione

Indica se una data e un'ora particolari non sono valide.

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

Parametri

dateTime
DateTime

Valore di data e ora.

Restituisce

Boolean

true se dateTime non è valido; in caso contrario, false.

Esempio

Nel fuso orario Pacifico, l'ora legale inizia alle 2:00 A.M. il 2 aprile 2006. Il codice seguente passa il tempo a intervalli di un minuto dalle 1:59 A.M. il 2 aprile 2006 alle 3:01 A.M. il 2 aprile 2006, al IsInvalidTime metodo di un TimeZoneInfo oggetto che rappresenta il fuso orario pacifico. L'output della console indica che tutte le volte dalle 2:00 il 2 aprile 2006 alle 2:59 il 2 aprile 2006 non è valido.

// 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

Commenti

Un'ora non valida rientra in un intervallo di ore per il fuso orario corrente che non può essere mappato all'ora UTC (Coordinated Universal Time) a causa dell'applicazione di una regola di regolazione. In genere, i tempi non validi si verificano quando l'ora si sposta avanti per l'ora legale. Per un'illustrazione, vedere la sezione Esempio.

Il valore della proprietà del Kind dateTime parametro influisce se dateTime rappresenta un tempo non valido, come illustrato nella tabella seguente.

Proprietà DateTime.Kind Oggetto TimeZoneInfo (se applicabile) Comportamento
DateTimeKind.Local TimeZoneInfo.Local Determina se l'ora non è valida.
DateTimeKind.Local TimeZoneInfo.Utc o un fuso orario non locale. Converte dateTime nell'ora dell'oggetto TimeZoneInfo e restituisce false.
DateTimeKind.Unspecified Non applicabile. dateTime Si supponga che sia l'ora dell'oggetto TimeZoneInfo e determina se non è valida.
DateTimeKind.Utc Non applicabile. Restituisce false.

Si applica a

Vedi anche