TimeZoneInfo.IsAmbiguousTime Método

Definição

Determina se uma determinada data e hora em um fuso horário específico é ambígua e pode ser mapeada para duas ou mais horas do Tempo Universal Coordenado (UTC).

Sobrecargas

IsAmbiguousTime(DateTime)

Determina se uma determinada data e hora em um fuso horário específico é ambígua e pode ser mapeada para duas ou mais horas do Tempo Universal Coordenado (UTC).

IsAmbiguousTime(DateTimeOffset)

Determina se uma determinada data e hora em um fuso horário específico é ambígua e pode ser mapeada para duas ou mais horas do Tempo Universal Coordenado (UTC).

IsAmbiguousTime(DateTime)

Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs

Determina se uma determinada data e hora em um fuso horário específico é ambígua e pode ser mapeada para duas ou mais horas do Tempo Universal Coordenado (UTC).

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

Parâmetros

dateTime
DateTime

Um valor de data e hora.

Retornos

true se o parâmetro dateTime for ambíguo; caso contrário, false.

Exceções

A propriedade Kind do valor dateTime é Local e dateTime é uma hora inválida.

Exemplos

No fuso horário do Pacífico, o horário de verão termina às 2:00 da manhã de 4 de novembro de 2007. O exemplo a seguir passa o tempo em intervalos de um minuto das 00h59 de 4 de novembro de 2007 às 2h01 de 4 de novembro de 2007 para o IsAmbiguousTime(DateTime) 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 de 1:00 da manhã em 4 de novembro de 2007, até 1:59 da manhã de 4 de novembro de 2007, são ambíguas.

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

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

   // List possible ambiguous times for 63-minute interval, from 12:59 AM to 2: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 ambiguous: {1}", newTime, pstZone.IsAmbiguousTime(newTime));
   }
// Specify DateTimeKind in Date constructor
let baseTime = DateTime(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified)

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

// List possible ambiguous times for 63-minute interval, from 12:59 AM to 2: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 ambiguous: {pstZone.IsAmbiguousTime newTime}"
' Specify DateTimeKind in Date constructor
Dim baseTime As New Date(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified)
Dim newTime As Date

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

' List possible ambiguous times for 63-minute interval, from 12:59 AM to 2: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 ambiguous: {1}", newTime, pstZone.IsAmbiguousTime(newTime))
Next

Comentários

Um tempo ambíguo se enquadra em um intervalo de vezes para o fuso horário atual. Isso significa que pode ser uma hora padrão ou uma hora resultante da aplicação de uma regra de ajuste. Normalmente, os horários ambíguos resultam quando o relógio está definido para retornar ao horário padrão do horário de verão. Consulte a seção Exemplo para obter uma ilustração.

O UTC (Tempo Universal Coordenado) não tem horários ambíguos; nem fusos horários que não dão suporte ao horário de verão. Portanto, esses fusos horários não têm regras de ajuste e as chamadas para o IsAmbiguousTime método sempre retornam false.

Para fusos horários que observam o horário de verão, o comportamento preciso desse método depende da relação entre a Kind propriedade e o TimeZoneInfo objeto, como mostra a tabela a seguir.

Tipo de objeto TimeZoneInfo Valor da propriedade do tipo Comportamento
TimeZoneInfo.Local DateTimeKind.Local ou DateTimeKind.Unspecified Determina se o parâmetro é ambíguo dateTime .
TimeZoneInfo.Local DateTimeKind.Utc dateTime Converte para a hora local e determina se esse horário é ambíguo.
TimeZoneInfo.Utc DateTimeKind.Utc ou DateTimeKind.Unspecified Retorna false.
TimeZoneInfo.Utc DateTimeKind.Local Se dateTime for ambíguo, pressupõe que é um horário padrão, converte-o em UTC e retorna false.
Outro fuso horário. DateTimeKind.Local ou DateTimeKind.Utc dateTime Converte para a hora no fuso horário especificado e determina se esse horário é ambíguo.
Outro fuso horário. DateTimeKind.Unspecified Determina se dateTime é ambíguo.

Confira também

Aplica-se a

IsAmbiguousTime(DateTimeOffset)

Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs
Origem:
TimeZoneInfo.cs

Determina se uma determinada data e hora em um fuso horário específico é ambígua e pode ser mapeada para duas ou mais horas do Tempo Universal Coordenado (UTC).

public:
 bool IsAmbiguousTime(DateTimeOffset dateTimeOffset);
public bool IsAmbiguousTime (DateTimeOffset dateTimeOffset);
member this.IsAmbiguousTime : DateTimeOffset -> bool
Public Function IsAmbiguousTime (dateTimeOffset As DateTimeOffset) As Boolean

Parâmetros

dateTimeOffset
DateTimeOffset

Uma data e hora.

Retornos

true se o parâmetro dateTimeOffset for ambíguo no fuso horário atual; caso contrário, false.

Comentários

Um tempo ambíguo se enquadra em um intervalo de vezes para o fuso horário atual. Isso significa que pode ser uma hora padrão ou uma hora resultante da aplicação de uma regra de ajuste. Normalmente, os horários ambíguos resultam quando o relógio está definido para retornar ao horário padrão do horário de verão. O UTC (Tempo Universal Coordenado) não tem horários ambíguos; nem fusos horários que não dão suporte ao horário de verão.

O comportamento preciso do método depende da relação entre a Offset propriedade do dateTimeOffset parâmetro e o fuso horário atual. Se o valor da Offset propriedade for um possível deslocamento do UTC do fuso horário atual, o método determinará se essa data e hora são ambíguas. Caso contrário, ele converte dateTimeOffset para a hora no fuso horário atual e determina se essa data e hora são ambíguas.

Aplica-se a