Datas, horários e fusos horários
Para além da estrutura básica DateTime , a .NET fornece as seguintes classes que suportam o trabalho com fusos horários:
-
Utilize esta classe para trabalhar com o fuso horário local do sistema e a zona de Tempo Universal Coordenado (UTC). A funcionalidade da TimeZone classe é em grande parte superada pela TimeZoneInfo classe.
-
Utilize esta classe para trabalhar com qualquer fuso horário que seja predefinido num sistema, para criar novos fusos horários e para converter facilmente datas e horários de um fuso horário para outro. Para novos desenvolvimentos, use a TimeZoneInfo classe em vez da TimeZone classe.
-
Utilize esta estrutura para trabalhar com datas e horas cuja compensação (ou diferença) da UTC é conhecida. A DateTimeOffset estrutura combina uma data e valor de tempo com a compensação desse tempo da UTC. Devido à sua relação com a UTC, um valor individual de data e hora identifica inequivocamente um único ponto no tempo. Isto torna um DateTimeOffset valor mais portátil de um computador para outro do que um DateTime valor.
A partir de .NET 6, estão disponíveis os seguintes tipos:
-
Utilize esta estrutura ao trabalhar com um valor que represente apenas uma data. A data representa todo o dia, desde o início do dia até ao fim.
DateOnly
tem uma gama de0001-01-01
através9999-12-31
de . E, este tipo representa a combinação de mês, dia e ano sem um tempo específico. Se anteriormente usou umDateTime
tipo no seu código para representar uma data que não tenha a hora marcada, utilize este tipo no seu lugar. -
Utilize esta estrutura para representar um tempo sem data. O tempo representa as horas, minutos e segundos de um dia não específico.
TimeOnly
tem uma gama de00:00:00.0000000
.23:59:59.9999999
Este tipo pode ser utilizado para substituirDateTime
eTimeSpan
tipos no seu código quando utilizou esses tipos para representar um tempo.
A secção seguinte fornece as informações de que precisa para trabalhar com fusos horários e para criar aplicações conscientes do fuso horário que podem converter datas e horários de um fuso horário para outro.
Nesta secção
Visão geral do fuso horário
Discute a terminologia, conceitos e questões envolvidas na criação de aplicações de fuso horário.
Escolha entre DateTime, DateTimeOffset, TimeSpan e TimeZoneInfo
Discute quando utilizar o DateTime, DateTimeOffsete TimeZoneInfo tipos ao trabalhar com dados de data e hora.
Encontrar os fusos horários definidos num sistema local
Descreve como enumerar os fusos horários encontrados num sistema local.
Como: Enumerar fusos horários presentes num computador
Fornece exemplos que enumeram os fusos horários definidos no registo de um computador e que permitem que os utilizadores selecionem um fuso horário pré-definido a partir de uma lista.
Como: Aceda aos objetos pré-finidos utc e fuso horário local
Descreve como aceder ao Tempo Universal Coordenado e ao fuso horário local.
Como: Instantiizar um objeto TimeZoneInfo
Descreve como instantaneaizar um TimeZoneInfo objeto do registo do sistema local.
Instantiing um objeto DateTimeOffset
Discute as formas pelas quais um DateTimeOffset objeto pode ser instantâneo, e as formas pelas quais um DateTime valor pode ser convertido em um DateTimeOffset valor.
Como: Criar fusos horários sem regras de ajustamento
Descreve como criar um fuso horário personalizado que não suporta a transição de e para o horário de verão.
Como: Criar fusos horários com regras de ajustamento
Descreve como criar um fuso horário personalizado que suporta uma ou mais transições de e para o horário de verão.
Salvar e restaurar fusos horários
Descreve TimeZoneInfo o suporte para a serialização e deserialização dos dados do fuso horário e ilustra alguns dos cenários em que estas funcionalidades podem ser utilizadas.
Como: Guardar fusos horários para um recurso incorporado
Descreve como criar um fuso horário personalizado e guardar as suas informações num ficheiro de recursos.
Como: Restaurar fusos horários a partir de um recurso incorporado
Descreve como instantânear fusos horários personalizados que foram guardados num ficheiro de recursos incorporado.
Realização de operações aritméticas com datas e horários
Discute as questões envolvidas na adição, subtração e comparação DateTime e DateTimeOffset valores.
Como: Utilizar fusos horários na aritmética de data e hora
Discute como realizar a aritmética de data e hora que reflete as regras de ajuste de um fuso horário.
Conversão entre DataTime e DateTimeOffset
Descreve como converter entre DateTime valores e DateTimeOffset valores.
Tempos de conversão entre fusos horários
Descreve como converter tempos de um fuso horário para outro.
Como: Resolver tempos ambíguos
Descreve como resolver um tempo ambíguo mapeando-o para o tempo padrão do fuso horário.
Como: Deixar os utilizadores resolverem tempos ambíguos
Descreve como permitir que um utilizador determine o mapeamento entre uma hora local ambígua e tempo universal coordenado.