TimeZoneInfo.IsInvalidTime(DateTime) Método

Definição

Indica se uma data e hora determinada é inválida.

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

Um valor de data e hora.

Retornos

Boolean

true se dateTime for inválida, caso contrário, false.

Exemplos

No fuso horário do Pacífico, o horário de verão começa às 2h. em 2 de abril de 2006. O código a seguir passa a hora em intervalos de um minuto a partir da 1h59. em 2 de abril de 2006, às 3:01 da manhã. em 2 de abril de 2006, para o IsInvalidTime método de um TimeZoneInfo objeto que representa o fuso horário do Pacífico. A saída do console indica que todas as vezes a partir das 2:00 da manhã. em 2 de abril de 2006, às 2:59 da manhã. em 2 de abril de 2006, são invá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

Comentários

Um tempo inválido está dentro de um intervalo de vezes para o fuso horário atual que não pode ser mapeado para UTC (Tempo Universal Coordenado) devido à aplicação de uma regra de ajuste. Normalmente, tempos inválidos ocorrem quando o tempo avança para o horário de verão. Consulte a seção Exemplo para obter uma ilustração.

O valor da Kind propriedade do dateTime parâmetro afeta se dateTime representa um tempo inválido, como mostra a tabela a seguir.

Propriedade DateTime.Kind Objeto TimeZoneInfo (se aplicável) Comportamento
DateTimeKind.Local TimeZoneInfo.Local Determina se a hora é inválida.
DateTimeKind.Local TimeZoneInfo.Utc ou um fuso horário não local. dateTime Converte na hora do TimeZoneInfo objeto e retornafalse.
DateTimeKind.Unspecified Não aplicável. dateTime Supõe que é a hora do TimeZoneInfo objeto e determina se ele é inválido.
DateTimeKind.Utc Não aplicável. Retorna false.

Aplica-se a

Confira também