Partilhar via


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

Aplica-se a: Canvas apps Fluxos Dataverse da área de trabalho colunas de fórmula CLI de aplicativos Power Pages Power Platform controlados por modelo

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. Hoje tem o mesmo valor ao longo de um dia, da meia-noite de hoje à 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 utente atual.

As funções UTCNow, UTCToday e IsUTCToday são as mesmas que suas contrapartes não-UTC, mas trabalham com valores independentes de fuso horário e usam o Tempo Universal Coordenado (UTC).

Nota

  • UTCNow, UTCToday e IsUTCToday só estão disponíveis em colunas de Microsoft Dataverse for Teams fórmulas e apenas para campos e valores independentes do tempo.
  • Now , Today e IsToday não estão disponíveis em Dataverse for Teams colunas de fórmulas, pois as avaliações são feitas sem o conhecimento do fuso horário local do utente 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

Agora,Hoje,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

Agora()

Hoje()

IsToday( DateTime )

  • DateTime - Obrigató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
Texto( Agora(), "mm/dd/aaaa 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"
Texto( Hoje(), "mm/dd/aaaa 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( Agora() ) Testa se a data e hora atuais estão entre a meia-noite de hoje e a meia-noite de amanhã. verdadeiro
IsToday( Hoje() ) Testa se a data atual está entre a meia-noite de hoje e a meia-noite de amanhã. verdadeiro
Texto( DateAdd( Now(), 12 ), "mm/dd/aaaa 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"
Texto( DateAdd( Today(), 12 ), "mm/dd/aaaa 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( Agora(), 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ã. falso
IsToday( DateAdd( Hoje(), 12 ) Testa se a data atual, mais 12 dias, está entre a meia-noite de hoje e a meia-noite de amanhã. falso
Hora( UTCNow() ) Obtém a data e hora atuais em UTC e extrai apenas a hora, que é 8 horas antes da hora local. 4
Dia( 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, Agora() )

    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:

    Texto( 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).