Compartilhar via


Comportamento e formato da coluna de data e hora

No Microsoft Dataverse, você pode especificar como os valores de data e hora serão mostrados aos usuários e como eles serão ajustados para os fusos horários.

Duas opções estão disponíveis para as colunas de data e hora.

  • Comportamento: se deseja ajustar os valores para os fusos horários.
  • Formato: se deseja exibir a parte da hora do valor.

Comportamental

O Dataverse armazena todos os valores de data e hora no fuso horário UTC. Quando seu aplicativo exibe valores ou processa valores inseridos pelos usuários, o Dataverse e os aplicativos baseados em modelo podem se ajustar ao fuso horário do usuário com estas opções de Comportamento.

  • Local do Usuário: ajusta os valores para o fuso horário do usuário. Esse é o comportamento padrão. Você pode alterar isso uma vez para outro comportamento.
  • Independente de fuso horário: nenhuma conversão de fuso horário.
  • Somente data: nenhuma conversão de fuso horário. Diferente de Independente de fuso horário, a parte da hora não será armazenada.

O fuso horário do usuário é definido em opções pessoais, não o fuso horário do sistema no Windows, Android, iOS ou macOS. No entanto, o fuso horário do sistema pode afetar scripts de cliente que funcionam com datas JavaScript.

Formato

Todas as colunas de data e hora têm uma parte de hora, a menos que seu comportamento seja Somente data. Formato: determina se a parte da hora do valor deve ser exibida.

  • Data e hora: exibe a data e hora do valor.
  • Somente data: exibe somente a parte da data do valor.

Observação

Os usuários ainda poderão alterar a parte da hora se o Formato for Somente data. Por exemplo, com chamadas à API Web ou usando um controle que tenha a parte da hora. Isso é diferente do Comportamento Somente data, em que a parte da hora não é armazenada.

Diretrizes de uso

Use o comportamento Independente de fuso horário quando as informações de fuso horário não forem necessárias, como horários de check-in de hotel. Com essa seleção, os usuários em todos os fusos horários verão o mesmo valor de data e hora.

Use o comportamento Somente data quando as informações sobre a hora do dia e o fuso horário não são necessárias, como em aniversários ou em datas especiais. Com essa seleção, os usuários em todos os fusos horários verão o mesmo valor exato de data.

O comportamento Independente de fuso horário com o formato Somente data é praticamente igual ao comportamento Somente data. Use o primeiro se não tiver certeza se precisará da parte da hora no futuro.

Importante

Evite o formato Somente data com o comportamento Local do usuário. Os usuários em fusos horários diferentes podem ver uma data diferente, o que não é pretendido na maioria dos cenários. Quando um usuário define uma data em um aplicativo baseado em modelo, a parte da hora será definida automaticamente para meia-noite do fuso horário. Isso pode fazer com que a data apareça um dia antes ou depois para outros usuários.

Exemplos

Valores de exibição

O Dataverse armazena 2023-10-15T07:30:00Z (ou 2023-10-15 para o comportamento Somente data). Usuários no fuso horário UTC-8 veem isso no aplicativo baseado em modelo ou com uma solicitação de API da Web para o valor formatado:

Comportamental Formato Valor de exibição
Local do usuário Data e hora 14 de outubro de 2023, 23h30
Local do usuário Somente data 14 de outubro de 2023
Independente de fuso horário Data e hora 15 de outubro de 2023, 7h30
Independente de fuso horário Somente data 15 de outubro de 2023
Somente data - 15 de outubro de 2023

Inserir valores em um aplicativo

Os usuários no fuso horário UTC-8 inserem October 14th, 2023, 11:30 pm em um aplicativo baseado em modelo. O valor é salvo no Dataverse como:

Comportamental Formato Valor salvo no Dataverse
Local do usuário Data e hora 2023-10-15T07:30:00Z
Local do usuário Somente data 2023-10-15T07:30:00Z
Independente de fuso horário Data e hora 2023-10-14T23:30:00Z
Independente de fuso horário Somente data 2023-10-14T23:30:00Z
Somente data - 14-10-2023

Se o usuário inserir apenas a data October 14th, 2023, a parte da hora será considerada 0h.

Comportamental Formato Valor salvo no Dataverse
Local do usuário Somente data 2023-10-14T08:00:00Z
Independente de fuso horário Somente data 2023-10-14T00:00:00Z
Somente data - 14-10-2023

Inserir valores inválidos em um aplicativo

Clientes diferentes têm maneiras diferentes de lidar com entradas inválidas. Por exemplo, no fuso horário do Pacífico, o horário de verão começou em 12 de março de 2023 às 2h, avançando uma hora para 3h. O horário entre 2h e 3h daquele dia não existe. Quando os usuários tentam inserir um valor nesse intervalo de tempo, os aplicativos poderão fazer o seguinte:

  • Alterar para o horário válido anterior ou seguinte.
  • Reverter para o último valor conhecido.
  • Mostrar uma mensagem de erro.
  • Não mostre horários entre 2h e 3h no seletor de horário, para que os usuários não possam selecioná-los em primeiro lugar.

Da mesma forma, clientes diferentes têm maneiras diferentes de lidar com intervalos de tempo repetidos. Por exemplo, no fuso horário do Pacífico, o horário de verão terminou em 5 de novembro de 2023 às 2h, retrocedendo uma hora para 1h. O horário entre 1h e 2h daquele dia repete-se duas vezes. Um horário como 1h30 pode se referir a qualquer um dos fusos horários. Se você precisar mostrar ou inserir horários nesse intervalo de forma inequívoca, é melhor mudar temporariamente para um fuso horário que não use o horário de verão.

Obter valores brutos com a API Web

O Dataverse armazena 2023-10-15T07:30:00Z (ou 2023-10-15 para o comportamento Somente data). Usuários em todos os fusos horários obtêm isso com uma solicitação de API da Web para o valor:

Comportamental Formato Valor bruto
Local do usuário Data e hora 2023-10-15T07:30:00Z
Local do usuário Somente data 2023-10-15T07:30:00Z
Independente de fuso horário Data e hora 2023-10-15T07:30:00Z
Independente de fuso horário Somente data 2023-10-15T07:30:00Z
Somente data - 15-10-2023

Obter valores com API do cliente

Os usuários no fuso horário UTC-8 inserem October 14th, 2023, 11:30 pm em um aplicativo baseado em modelo. A API do cliente funciona como formContext.getAttribute(<column name>).getValue() e retorna o valor com ajustes de fuso horário aplicados:

Comportamental Formato JavaScript dateValue.toUTCString()
Local do usuário Data e hora 15-10-2023 7h30 (UTC)
Local do usuário Somente data 15-10-2023 7h30 (UTC)

Para o comportamento Independente de fuso horário, o valor de data do JavaScript está no fuso horário do navegador:

Comportamental Formato JavaScript dateValue.toString()
Independente de fuso horário Data e hora 14-10-2023 23h30 (fuso horário do navegador)
Independente de fuso horário Somente data 14-10-2023 23h30 (fuso horário do navegador)

Os valores de data do JavaScript sempre têm um componente de hora. É por isso que o comportamento Somente data tem um componente de hora de 0h:

Comportamental Formato JavaScript dateValue.toString()
Somente data - 15-10-2023 0h (fuso horário do navegador)

Observação

Os valores de data do JavaScript são afetados pelo fuso horário do navegador, que são provenientes das configurações do sistema operacional do dispositivo.

Para o comportamento Local do usuário, o resultado da API do Cliente deve ser interpretado como um valor UTC. Use Date.getUTCDate(), Date.getUTCHours() etc. para trabalhar com ele. Para obter o que o usuário vê, aplique getTimeZoneOffsetMinutes. Não use Date.getDate(), Date.getHours() etc. porque eles mostrarão o valor no fuso horário do navegador.

Para o comportamento Independente de fuso horário e Somente data, o resultado da API do Cliente deve ser interpretado como um valor no fuso horário do navegador. Use Date.getDate(), Date.getHours() etc. para trabalhar com ele. Não use Date.getUTCDate(), Date.getUTCHours() e assim por diante porque você não precisa ajustar nenhum fuso horário.

Alterar o comportamento do local do usuário

Exceto se o editor de uma solução gerenciada impedir isso, você poderá alterar o comportamento das colunas personalizadas de data de Local do usuário para Somente data ou Independente de fuso horário. Essa alteração só pode ser feita uma vez.

A alteração do comportamento da coluna afeta os valores da coluna adicionados ou modificados após a alteração do comportamento da coluna. Os valores de coluna existentes permanecem no banco de dados no formato de fuso horário UTC. Para alterar o comportamento dos valores de coluna existentes de UTC para Somente data, você pode precisar da ajuda de um desenvolvedor para converter o comportamento de valores de data e hora existentes no banco de dados.

Aviso

Antes de mudar o comportamento de uma coluna existente de data e hora, revise todas as dependências dela, como regras de negócios, fluxos de trabalho, colunas calculadas ou colunas cumulativas, para garantir que não haverá problemas como resultado da alteração no comportamento. Depois de alterar o comportamento de uma coluna de data e hora, abra cada regra de negócios, fluxo de trabalho, coluna calculada e coluna cumulativa dependente da coluna alterada, examine as informações e salve-a para garantir que o comportamento e o valor da coluna de data e hora mais recentes sejam usados.

Alteração do comportamento durante a importação de uma solução

Ao importar uma solução que contém uma coluna Data com o comportamento Local do usuário, você poderá alterar o comportamento para Somente data ou Independente de fuso horário.

Observação

Você só poderá alterar o comportamento de uma coluna gerenciada existente Somente data ou Data e hora se você for o editor. Para fazer alterações nesses campos, é necessário fazer uma atualização na solução que adicionou a coluna Somente data ou Data e hora. Mais informações: Atualizar ou fazer upgrade de uma solução

Bloqueio da alteração de comportamento

Ao distribuir uma coluna personalizada de data em uma solução gerenciada, você poderá evitar que os usuários da sua solução alterem o comportamento definindo a propriedade gerenciada CanChangeDateTimeBehavior como Falsa. Mais informações: Definir propriedades gerenciadas para colunas

Operadores de consulta de data e hora sem suporte para o comportamento Somente data

Os operadores de consulta relacionados a data e hora a seguir são inválidos para o comportamento Somente data. Um erro de exceção de operador inválido é lançado quando um destes operadores é usado na consulta.

  • Anterior a X Minutos
  • Anterior a X Horas
  • Últimas X Horas
  • Próximas X Horas

Confira também

Solucionar problemas de data e hora em aplicativos baseados em modelo
Criar e editar colunas
Definir colunas calculadas para automatizar cálculos manuais
Propriedades gerenciadas da coluna
Propriedades gerenciadas
Blog: Trabalhando com fusos horários no Dataverse
Configurar o comportamento e o formato da coluna de data e hora usando código

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).