Condividi tramite


TimeZoneInfo.IsInvalidTime(DateTime) Metodo

Definizione

Indica se una determinata data e ora non è valida.

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

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

Esempio

Nel fuso orario pacifico, l'ora legale inizia alle 2:00 del 2 aprile 2006. Il codice seguente passa la volta a intervalli di un minuto dalle 1:59 del 2 aprile 2006 alle 3:01 del 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 del 2 aprile 2006 alle 2.59 del 2 aprile 2006 non sono valide.

// 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 di cui non è possibile eseguire il mapping all'ora UTC (Coordinated Universal Time) a causa dell'applicazione di una regola di regolazione. In genere, si verificano orari non validi quando l'ora si sposta in avanti per l'ora legale. Per un'illustrazione, vedere la sezione Esempio.

Il valore della Kind proprietà del dateTime parametro influisce sul fatto che dateTime rappresenta un'ora non valida, 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. Si supponga dateTime che sia l'ora dell'oggetto TimeZoneInfo e determini se non è valida.
DateTimeKind.Utc Non applicabile. Restituisce false.

Si applica a

Vedi anche