TimeZoneInfo.IsInvalidTime(DateTime) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Indica se uma data e hora específicas são invá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
Um valor de data e hora.
Devoluções
true se dateTime for inválido; caso contrário, false.
Exemplos
No fuso horário do Pacífico, o horário de verão começa às 2:00 da manhã de 2 de abril de 2006. O código seguinte passa a hora a intervalos de um minuto, desde as 1:59 da manhã de 2 de abril de 2006 até às 3:01 da manhã de 2 de abril de 2006, até ao IsInvalidTime método de um TimeZoneInfo objeto que representa o fuso horário do Pacífico. A saída da consola indica que todos os horários das 2:00 da manhã de 2 de abril de 2006 às 2:59 da manhã de 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
Observações
Uma hora inválida enquadra-se num intervalo de horários para o fuso horário atual que não pode ser mapeado para o Tempo Universal Coordenado (UTC) devido à aplicação de uma regra de ajustamento. Normalmente, os horários inválidos ocorrem quando o horário avança para o horário de verão. Veja a secção Exemplo para uma ilustração.
O valor da Kind propriedade do dateTime parâmetro afeta se dateTime representa um tempo inválido, como mostra a tabela seguinte.
| DateTime.Kind propriedade | 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. | Converte dateTime para o tempo do TimeZoneInfo objeto e devolve false. |
| DateTimeKind.Unspecified | Não aplicável. | Assume dateTime que é a hora do TimeZoneInfo objeto e determina se este é inválido. |
| DateTimeKind.Utc | Não aplicável. | Retorna false. |