Funções Now, Today, IsToday, UTCNow, UTCToday, IsUTCToday

Aplica-se a: Aplicações de tela Fluxos de ambiente de trabalho Colunas de fórmula do Dataverse Aplicações condicionadas por modelo Power Platform CLI

Devolve a data e hora atuais e testa se é um valor de data/hora corresponde ao dia de hoje.

Nota

Os comandos PAC CLI pac power-fx não suportam as funções UTCNow, UTCToday e IsUTCToday.

Descrição

A função Now devolve a data e hora atuais como um valor de data/hora.

A função Today devolve a data atual como um valor de data/hora. A hora é definida como meia-noite. Today tem o mesmo valor ao longo do dia, desde a meia-noite de hoje até à meia-noite de amanhã.

A função IsToday testa se um valor data/hora está entre a meia-noite de hoje e a meia-noite de amanhã. Esta função devolve um valor booleano (true ou false).

As funções Now, Today e IsToday funcionam com a hora local do utilizador atual.

As funções UTCNow, UTCToday e IsUTCToday são as mesmas que as respetivas equivalentes não-UTC, mas trabalham com valores independentes do fuso horário e utilizam a Hora Universal Coordenada (UTC).

Nota

  • UTCNow, UTCToday e IsUTCToday só estão disponíveis nas colunas da fórmula Microsoft Dataverse for Teams e apenas para os campos e os valores independentes da hora.
  • Now, Today e IsToday não estão disponíveis nas colunas de fórmula no Dataverse for Teams, uma vez que as avaliações são feitas sem o conhecimento do fuso horário do utilizador atual.
    Mais informações: Trabalhar com colunas de tabelas de fórmulas no Dataverse for Teams

Consulte Date, Time e DateTime na documentação de tipos de dados e como trabalhar com datas e horas para obter mais informações.

Funções Voláteis

Now, Today, UTCNow e UTCToday são funções voláteis. Estas funções devolvem um valor diferente para cada avaliação.

Quando for utilizada numa fórmula de fluxos de dados, uma função volátil só irá devolver um valor diferente se a fórmula em que aparece for reavaliada. Se nada mais for alterado na fórmula, esta terá o mesmo valor durante a execução da sua aplicação.

Por exemplo, um controlo Etiqueta com Etiqueta1.Text = Now() não será alterado enquanto a sua aplicação estiver ativa. Só resultará num novo valor se fechar e voltar a abrir a aplicação.

A função será reavaliada se fizer parte de uma fórmula em que algo foi alterado. Por exemplo, se alterarmos o nosso exemplo para incluir um controlo de deslize com Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ), a hora atual será obtida sempre que o valor do controlo Slider for alterado e a propriedade de texto da etiqueta for reavaliada.

Quando são utilizadas numa fórmula de comportamento, as funções voláteis são reavaliadas sempre que a fórmula de comportamento é avaliada. Veja um exemplo abaixo.

Sintaxe

Utilizar a hora local do utilizador

Now()

Today()

IsToday( DateTime )

  • DateTime – Necessário. O valor data/hora a testar.

Utilizar a Hora Universal Coordenada (UTC)

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime – Obrigatório. O valor de data/hora independente do fuso horário a testar.

Exemplos

Para os exemplos nesta secção, a hora atual é 20:58 de 11 de julho de 2021 no Fuso Horário do Pacífico (UTC-8) e o idioma é en-us.

Fórmula Descrição Resultado
Text( Now(), "mm/dd/yyyy hh:mm:ss" ) Obtém a data e hora atuais no fuso horário do utilizador e apresenta-as como uma cadeia. "11/07/2021 20:58:00"
Text( Today(), "mm/dd/yyyy hh:mm:ss" ) Obtém apenas a data atual, deixando a hora definida como meia-noite, e apresenta-a como uma cadeia. "12/07/2021 00:00:00"
IsToday( Now() ) Testa se a data e hora atuais estão entre a meia-noite de hoje e a meia-noite de amanhã. true
IsToday( Today() ) Testa se a data atual está entre a meia-noite de hoje e a meia-noite de amanhã. true
Text( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Obtém a data e hora atuais, acrescenta 12 dias ao resultado, e apresenta-as como uma cadeia. "23/07/2021 20:58:00"
Text( DateAdd( Today(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Obtém a data atual, acrescenta 12 dias ao resultado, e apresenta-a como uma cadeia. "23/07/2021 00:00:00"
IsToday( DateAdd( Now(), 12 ) ) Testa se a data e hora atuais, mais 12 dias, estão entre a meia-noite de hoje e a meia-noite de amanhã. false
IsToday( DateAdd( Today(), 12 ) ) Testa se a data atual, mais 12 dias, está entre a meia-noite de hoje e a meia-noite de amanhã. false
Hour( UTCNow() ) Obtém a data e hora atuais em UTC e extrai apenas a hora, que é 8 horas antes da hora local. 4
Day( UTCToday() ) Obtém apenas a data atual em UTC e extrai o dia, que é 1 dia antes da hora local. 12
IsUTCToday( UTCNow() ) Testa se a data e hora atuais estão entre a meia-noite de hoje e a meia-noite de amanhã, tudo na hora UTC. verdadeiro
IsUTCToday( UTCToday() ) Testa se a data atual está entre a meia-noite de hoje e a meia-noite de amanhã, tudo na hora UTC. verdadeiro

Apresentar um relógio que é atualizado em tempo real

  1. Adicione um controlo Timer, defina a respetiva propriedade Duration como 1000 e a propriedade Repeat para true.

    O temporizador será executado por um segundo, recomeçará automaticamente e continuará esse padrão.

  2. Defina a propriedade OnTimerEnd do controlo para esta fórmula:

    Set( CurrentTime, Now() )

    Sempre que o temporizador recomeçar (após cada segundo), esta fórmula definirá a variável global CurrentTime para o valor atual da função Now.

    Um ecrã com um controlo Temporizador com a fórmula OnTimerEnd = Set(CurrentTime; Now()).

  3. Adicione um controlo Label e defina a respetiva propriedade Text para esta fórmula:

    Text( CurrentTime, LongTime24 )

    Utilize a função Text para formatar a data e a hora como quiser ou defina esta propriedade para CurrentTime para mostrar as horas e os minutos, mas não os segundos.

    Um ecrã com um controlo Etiqueta com a propriedade Text definida para Text( CurrentTime; LongTime24).

  4. Pré-visualize a aplicação ao premir F5 e, em seguida, inicie o temporizador ao clicar ou tocar no mesmo.

    A etiqueta mostra o tempo atual continuamente, incluindo os segundos.

    Quatro ecrãs a mostrar quatro valores de tempo (13:50:22, 13:50:45, 13:51:03 e 13:51:25).

  5. Defina a propriedade AutoStart do temporizador para true e a propriedade Visible do mesmo para false.

    O temporizador é invisível e começa automaticamente.

  6. Defina a propriedade OnStart do ecrã para que a variável CurrentTime tenha um valor válido, como neste exemplo:

    Set(CurrentTime, Now())

    A etiqueta aparece assim que a aplicação é iniciada (antes de o temporizador ser executado durante um segundo).