Passar para o conteúdo principal
FUNÇÕES DE DATA E HORA - TOOLZZ CONNECT

Esse é um tutorial da plataforma Toolzz Connect

Atualizado há mais de uma semana

Nesse artigo você encontrará as seguintes informações:

  • formatDate (date; format; [timezone])

  • parseDate (text; format; [timezone])

  • addDays (date; number)

  • addHours (date; number)

  • addMinutes (date; number)

  • addMonths (date; number)

  • addSeconds (date; number)

  • addYears (date; years)

  • setSecond (date; number)

  • setMinute (date; number)

  • setHour (date; number)

  • setDay (date; number/name of the day in english)

  • setDate (date; number)

  • setMonth (date; number/name of the month in English)

  • setYear (date; number)

  • Examples


formatDate (date; format; [timezone])

Quando usar: você tem um “Date value” (valor de data) que deseja converter (formato) em um “Text value” (representação textual legível por humanos) como 12-10-2019 20:30 ou Ago 18, 2019 10:00 AM

Parâmetros

A segunda coluna indica o tipo esperado. Se um tipo diferente for fornecido, a coerção de tipo será aplicada.

data

Date

Valor de data a ser convertido em um valor de texto.

format

Text

Formato especificado usando Tokens para formatação de data/hora.

Exemplo : DD.MM.YYYY HH:mm

timezone

Text

Opcional. O fuso horário usado para a conversão.

Consulte Lista de fusos horários do banco de dados tz, coluna "TZ database name" para obter a lista de fusos horários reconhecidos.

Se omitido, O Toolzz Connect usa o fuso horário da organização. Você pode visualizar e editar esse fuso horário acessando Profile > Time zone options > Scenarios.

Exemplos: Europe/Prague, UTC

Observação

Somente os valores listados na coluna "TZ database name" são reconhecidos pela função como um fuso horário válido. Qualquer outro valor será ignorado e o fuso horário da organização especificado em seu perfil será usado.

Return value and type (valor e tipo de retorno)

Representação de texto do valor Date fornecido de acordo com o formato e fuso horário especificados. Tipo é Texto.

Exemplos

Os fusos horários da organização e da Web foram definidos “Europe/Prague” nos exemplos a seguir.

Exemplo 5. formatDate(1. Date created;MM/DD/AAAA)

= 01/10/2018

Exemplo 6. formatDate(1. Date created;AAAA-MM-DD hh:mm A)

= 01/10/2018 09:32

Exemplo 7. formatDate(1. Date created;DD.MM.AAAA HH:mm ;UTC)

= 01.10.2018 07:32

Exemplo 8. formatDate(now;MM/DD/AAAA HH:mm)

= 19.03.2019 15:30


parseDate (text; format; [timezone])

Quando usar: você tem um “Text value” representando uma data (por exemplo, 12-10-2019 20:30 ou Ago 18, 2019 10:00 AM) e deseja convertê-lo (parse) em um “Data value” (representação binária legível por máquina).

Parâmetros

A segunda coluna indica o tipo esperado. Se um tipo diferente for fornecido, a coerção de tipo será aplicada.

text

Text

Valor de texto a ser convertido em um valor de Data.

format

Text

Formato especificado usando Tokens para análise de data/hora.

Exemplo : DD.MM.YYYY HH:mm

timezone

Text

Opcional. O fuso horário usado para a conversão.

Consulte Lista de fusos horários do banco de dados tz, coluna "TZ database name" para obter a lista de fusos horários reconhecidos.

Se omitido, o Toolzz Connect usa o fuso horário da organização. Você pode visualizar e editar esse fuso horário acessando Profile > Time zone options > Scenarios.

Exemplos : Europe/Prague, UTC

Observação

Somente os valores listados na coluna "TZ database name" são reconhecidos pela função como um fuso horário válido. Qualquer outro valor será ignorado e o fuso horário da organização especificado em seu perfil será usado.

Return value and type (Valor e tipo de retorno)

Representação de data do valor de texto fornecido de acordo com o formato e fuso horário especificados. O tipo é Data.

Exemplos

Observe que nos exemplos a seguir o valor de “Date” retornado é expresso de acordo com a ISO 8601, mas o valor real resultante é do tipo “Date”.

Exemplo 9. parseDate(28/12/2016 ;AAAA-MM-DD)

= 2016-12-28T00:00:00.000Z

Exemplo 10. parseDate(28/12/2016 16:03 ;AAAA-MM-DD HH:mm)

= 2016-12-28T16:03:00.000Z

Exemplo 11. parseDate(28/12/2016 16h03 ;AAAA-MM-DD hh:mm a)

= 2016-12-28T16:03:06.000Z

Exemplo 12. parseDate(1482940986 ;X)

= 2016-12-28T16:03:06.000Z

addDays (date; number)

Retorna uma nova data como resultado da adição de um determinado número de dias a uma data. Para subtrair dias, digite um número negativo.

addDays(2016-12-08T15:55:57.536Z ;2)

= 2016-12-10T15:55:57.536Z

addDays(2016-12-08T15:55:57.536Z ;-2)

= 2016-12-6T15:55:57.536Z


addHours (date; number)

Retorna uma nova data como resultado da adição de um determinado número de horas a uma data. Para subtrair horas, insira um número negativo.

addHours( 2016-12-08T15:55:57.536Z ; 2 )

= 2016-12-08T17:55:57.536Z

addHours( 2016-12-08T15:55:57.536Z ; -2 )

= 2016-12-08T13:55:57.536Z


addMinutes (date; number)

Retorna uma nova data como resultado da adição de um determinado número de minutos a uma data. Para subtrair minutos, digite um número negativo.

addMinutes( 2016-12-08T15:55:57.536Z ; 2 )

= 2016-12-08T15:57:57.536Z

addMinutes( 2016-12-08T15:55:57.536Z ; -2 )

= 2016-12-08T15:53:57.536Z


addMonths (date; number)

Retorna uma nova data como resultado da adição de um determinado número de meses a uma data. Para subtrair meses, digite um número negativo.

addMonths( 2016-12-08T15:55:57.536Z ; 2 )

= 2016-10-08T15:55:57.536Z

addMonths( 2016-12-08T15:55:57.536Z ; -2 )

= 2016-06-08T15:55:57.536Z


addSeconds (date; number)

Retorna uma nova data como resultado da adição de um determinado número de segundos a uma data. Para subtrair segundos, insira um número negativo.

addSeconds( 2016-12-08T15:55:57.536Z ; 2 )

= 2016-12-08T15:55:59.536Z

addSeconds( 2016-12-08T15:55:57.536Z ; -2 )

= 2016-12-08T15:55:55.536Z


addYears (date; years)

Retorna uma nova data como resultado da adição de um determinado número de anos a uma data. Para subtrair anos, insira um número negativo.

addYears( 2016-12-08T15:55:57.536Z ; 2 )

= 2018-08-08T15:55:57.536Z

addYears( 2016-12-08T15:55:57.536Z ; -2 )

= 2014-08-08T15:55:57.536Z


setSecond (date; number)

Retorna uma nova data com os segundos especificados nos parâmetros. Aceita números de 0 a 59. Se for informado um número fora desta faixa, retornará a data com os segundos do(s) minuto(s) anterior(es) ou subseqüente(s), conforme o caso.

setSecond( 2015-10-07T11:36:39.138Z ; 10 )

= 2015-10-07T11:36:10.138Z

setSecond( 2015-10-07T11:36:39.138Z ; 61 )

= 2015-10-07T11:37:01.138Z


setMinute (date; number)

Retorna uma nova data com os minutos especificados nos parâmetros. Aceita números de 0 a 59. Se for informado um número fora desta faixa, retornará a data com os minutos da(s) hora(s) anterior(es) ou subsequente(s), conforme o caso.

setMinute( 2015-10-07T11:36:39.138Z ; 10 )

= 2015-10-07T11:10:39.138Z

setMinute( 2015-10-07T11:36:39.138Z ; 61 )

= 2015-10-07T12:01:39.138Z


setHour (date; number)

Retorna uma nova data com a hora especificada nos parâmetros. Aceita números de 0 a 59. Caso seja informado um número fora desta faixa, retornará a data com a hora do(s) dia(s) anterior(es) ou subsequente(s), conforme o caso.

setHour( 2015-10-07T11:36:39.138Z ; 10 )

= 2015-08-07T06:36:39.138Z

setHour( 2015-10-07T11:36:39.138Z ; 61 )

= 2015-08-06T18:36:39.138Z


setDay (date; number/name of the day em inglês)

Retorna uma nova data com o dia especificado nos parâmetros. Pode ser usado para definir o dia da semana, com domingo como 1 e sábado como 7. Se o valor fornecido for de 1 a 7, a data resultante estará dentro da semana atual (domingo a sábado). Se um número for fornecido fora do intervalo, ele retornará o dia da(s) semana(s) anterior(es) ou subsequente(s), de acordo.

setDay( 2018-06-27T11:36:39.138Z ; monday )

= 2018-06-25T11:36:39.138Z

setDay( 2018-06-27T11:36:39.138Z ; 1 )

= 2018-06-24T11:36:39.138Z

setDay( 2018-06-27T11:36:39.138Z ; 7 )

= 2018-06-30T11:36:39.138Z


setDate (date; number)

Retorna uma nova data com o dia do mês especificado nos parâmetros. Aceita números de 1 a 31. Se um número for fornecido fora do intervalo, ele retornará o dia do(s) mês(es) anterior(es) ou subseqüente(s), de acordo.

setDate( 2015-08-07T11:36:39.138Z ; 5 )

= 2015-08-05T11:36:39.138Z

setDate( 2015-08-07T11:36:39.138Z ; 32 )

= 2015-09-01T11:36:39.138Z


setMonth (date; number/name of the month em inglês)

Retorna uma nova data com o mês especificado nos parâmetros. Aceita números de 1 a 12. Se for fornecido um número fora desse intervalo, retornará o mês do(s) ano(s) anterior(es) ou subseqüente(s), de acordo.

setMonth( 2015-08-07T11:36:39.138Z ; 5 )

= 2015-05-07T11:36:39.138Z

setMonth( 2015-08-07T11:36:39.138Z ; 17 )

= 2016-05-07T11:36:39.138Z

setMonth( 2015-08-07T11:36:39.138Z ; january )

= 2015-01-07T12:36:39.138Z


setYear (date; number)

Retorna uma nova data com o ano especificado nos parâmetros.

setYear( 2015-08-07T11:36:39.138Zv ; 2017 )

= 2017-08-07T11:36:39.138Z


Exemplos

Como calcular um dia da semana no mês

Observação

Adaptado para o Toolzz Connect a partir desta fonte original.

Se você precisar calcular uma data correspondente a um dia da semana no mês (por exemplo, 1ª terça-feira, 3ª sexta-feira etc.), poderá usar a seguinte fórmula:

Você pode copiar e colar o código da fórmula em um campo:

{{ addDays(setDate(1.date; 1 ); 1. n * 7 - formatDate(addDays(setDate(1.date; 1 ); "-" + 1. dow); "E" )) }}

A fórmula contém os seguintes itens:

1.n

um dia:

  • 1 para 1ª terça-feira

  • 2 para 2ª terça-feira

  • 3 para 3ª terça-feira

  • etc.

2.dow

dia da semana

  • 1 para segunda-feira

  • 2 para terça-feira

  • 3 para quarta-feira

  • 4 para quinta-feira

  • 5 para sexta-feira

  • 6 para sábado

  • 7 para domingo

1.date

A data determina o mês. Para calcular um dia da semana no mês atual, use a variável “now”.

Caso deseje calcular apenas um caso específico, por exemplo, 2ª quarta-feira, você pode substituir os itens 1.n e 2.dow na fórmula pelos números correspondentes. Para a 2ª quarta-feira do mês atual, você usaria os seguintes valores:

  • 1.n=2

  • 1.dow=3

  • 1.date=now

Explicação:

  • setDate(now;1) retorna primeiro do mês atual

  • formatDate(....;E) retorna o dia da semana (1, 2, ... 6)

  • veja a fonte original para o resto

Como calcular dias entre datas

Uma possibilidade é empregar a seguinte expressão:

Você pode copiar e colar o seguinte código:

{{ round((2.value - 1. value) / 1000 / 60 / 60 / 24 ) }}

❗ Observação

Os valores de D1 e D2 devem ser do tipo “Date”. Se forem do tipo “String” (por exemplo, "20.10.2018"), use a função ““parseDate()” para convertê-los para o tipo “Date”.

A função “round()” é utilizada para casos em que uma das datas ficam dentro do horário de verão e a outra não. Nesses casos, a diferença em horas é de uma hora a menos/a mais e dividindo-a por 24 dá um resultado não inteiro.

Como calcular o último dia/milissegundo do mês

Ao especificar um intervalo de “Dates” (por exemplo, em um módulo de pesquisa) abrangendo todo o mês anterior como “closed interval “ (o intervalo que inclui seus dois pontos limite), é necessário calcular o último dia do mês.

01-09-2019 ≤ D ≤ 30-09-2019

A fórmula abaixo mostra uma maneira de calcular o último dia do mês anterior:

Você pode copiar e colar o seguinte código:

{{ addDays(setDate(agora; 1 ); -1 ) }}

Em alguns casos, é necessário calcular não apenas o último dia do mês, mas literalmente seu último milissegundo:

2019-09-01T00:00:00.000Z ≤ D ≤ 2019-09-30T23:59:59.999Z

A fórmula abaixo mostra uma maneira de calcular o último milissegundo do mês anterior:

Você pode copiar e colar o seguinte código:

{{ parseDate (parseDate(formatDate(agora; "AAAAMM01" ); "AAAAMMDD" ; "UTC" ) - 1 ; "x" )}}

Se o resultado respeitar suas configurações de fuso horário, simplesmente omita o argumento UTC:

{{ parseDate (parseDate(formatDate(agora; "AAAAMM01" ); "AAAAMMDD" ) - 1 ; "x" )}}

No entanto, é preferível usar “half-open interval” (o intervalo que exclui um de seus pontos limite), especificando o primeiro dia do mês seguinte e substituindo o operador menor ou igual a menor que:

01/09/2019 ≤ D < 01/10/2019

2019-09-01T00:00:00.000Z ≤ D < 2019-10-01T00:00:00.000Z

Como transformar segundos em horas, minutos e segundos

Uma possibilidade é usar a seguinte expressão mostrada abaixo:

Você pode copiar e colar o seguinte código:

{{ floor(1.seconds / 3600 ) }} :{{floor((1.seconds % 3600 ) / 60 )}}:{{((1.seconds % 3600 ) % 60 )}}

Observação

Os valores de “Second” devem ser do tipo numérico. Esta função é adequada apenas se o segundo valor for menor que 86400 (menos de um dia).

Pronto! Agora voce já sabe tudo sobre as funções de data e hora no Toolzz Connect.

Respondeu à sua pergunta?