Nesta página

Funções de data e hora no Make

As funções de data e hora servem para converter texto em data, formatar uma data para exibição e calcular novos valores. A distinção principal é entre um valor do tipo Date, usado nos cálculos, e sua representação em Text.

Esta referência foi reescrita a partir da documentação do Make, capturada em maio de 2026 e consultada novamente em 26/09/2026. Os exemplos abaixo não representam testes deste site.

Formatar uma data: formatDate

A assinatura é formatDate(date; format; [timezone]). Recebe uma data e devolve texto conforme os tokens de formatação.

  • date: valor do tipo data.
  • format: texto que descreve o formato, como DD.MM.YYYY HH:mm.
  • timezone: fuso opcional, como Europe/Prague ou UTC. Quando omitido, a documentação indica o fuso da organização.

Exemplo editorial de composição, sem saída fixa porque depende do momento da execução:

formatDate(now; "DD/MM/YYYY HH:mm"; "UTC")

Use HH para o relógio de 24 horas; hh com A representa o formato com AM/PM nos exemplos oficiais. Confira os tokens e a configuração de fuso antes de comparar resultados.

Interpretar texto: parseDate

A assinatura é parseDate(text; format; [timezone]). Ela devolve uma data, não apenas uma string reformatada.

  • text: texto que representa a data.
  • format: formato presente nesse texto.
  • timezone: fuso de interpretação; se não informado, usa o da organização.

Exemplo editorial com fuso explícito:

parseDate("2016-12-28 16:03"; "YYYY-MM-DD HH:mm"; "UTC")

Os tokens X e x representam timestamps em segundos e milissegundos, respectivamente. A documentação também remete à conversão de tipos quando o valor recebido não tem o tipo esperado.

Somar ou subtrair unidades

Estas funções devolvem uma nova data. Use um número negativo para subtrair.

Função Unidade
addDays(date; number) Dias
addHours(date; number) Horas
addMinutes(date; number) Minutos
addMonths(date; number) Meses
addSeconds(date; number) Segundos
addYears(date; years) Anos

Por exemplo, addDays(now; -2) expressa a subtração de dois dias. Não confunda somar meses com somar uma quantidade fixa de dias.

Ajustar uma parte da data

As funções set... substituem uma parte da data, em vez de acrescentar uma duração.

Função Parte ajustada
setSecond(date; number) Segundo; faixa usual de 0 a 59
setMinute(date; number) Minuto; faixa usual de 0 a 59
setHour(date; number) Hora
setDay(date; number) Dia da semana: domingo é 1 e sábado é 7
setDate(date; number) Dia do mês, de 1 a 31 conforme o mês
setMonth(date; number) Mês, de 1 a 12
setYear(date; number) Ano

A documentação aceita também nomes em inglês para setDay e setMonth, como monday e january. Para dia da semana entre 1 e 7, setDay trabalha na semana que vai de domingo a sábado.

Valores fora da faixa podem transbordar para a unidade anterior ou seguinte: o exemplo oficial de setSecond com 61 avança um minuto e define o segundo como 1; setMonth com 17 avança para maio do ano seguinte.

Nota de leitura: a fonte contém resultados ilustrativos inconsistentes em algumas funções, inclusive setHour, addSeconds e addYears. Não reproduzimos essas saídas como resultados garantidos. Confira o comportamento com datas controladas no seu cenário, especialmente nos limites de mês e nas mudanças de fuso.

Calcular a enésima ocorrência de um dia da semana

A fórmula documentada usa uma data do mês desejado, o número da ocorrência e o dia da semana:

{{addDays(setDate(1.date; 1); 1.n * 7 - formatDate(addDays(setDate(1.date; 1); "-" + 1.dow); "E"))}}
  • 1.date: data que determina o mês; use now para o mês atual.
  • 1.n: ocorrência desejada, como 1 para a primeira e 2 para a segunda.
  • 1.dow: dia da semana no padrão usado por E, de segunda-feira (1) a domingo (7).

Essa numeração é diferente da de setDay. Para a segunda quarta-feira, use n = 2 e dow = 3. A tabela do original alterna os rótulos 1.dow e 2.dow; aqui usamos 1.dow para corresponder à fórmula. Substitua os itens pelos campos reais do seu cenário.

Calcular dias entre datas

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

Os dois valores devem ser datas. Se forem textos, converta-os antes com parseDate. A divisão transforma milissegundos em dias. A fonte usa round para acomodar diferenças de uma hora quando as datas ficam em lados diferentes de uma mudança de horário de verão; não se trata de uma medida de horas exatas.

Último dia ou último milissegundo do mês anterior

Para obter uma data no último dia do mês anterior:

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

Essa expressão, por si só, não define o horário como o último milissegundo do dia. Para o último milissegundo, a fonte apresenta:

{{parseDate(parseDate(formatDate(now; "YYYYMM01"); "YYYYMMDD"; "UTC") - 1; "x")}}

O argumento UTC define a interpretação do início do mês usado nesse cálculo. A fonte orienta omiti-lo se o resultado precisar respeitar as configurações de fuso da organização.

Para pesquisas por intervalo, o próprio Make prefere um intervalo semiaberto: por exemplo, data maior ou igual a 01/09/2019 e menor que 01/10/2019, em vez de tentar incluir o último instante de setembro.

Converter segundos em horas, minutos e segundos

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

O campo 1.seconds precisa ser numérico. O exemplo da fonte é destinado a durações inferiores a um dia (86.400 segundos) e não acrescenta preenchimento com zeros. Esses números descrevem unidades de tempo, não cotas de uso do Make.

Esta página inclui links de afiliado. Podemos receber uma comissão se você se registrar ou contratar por meio deles, sem custo adicional para você.

Entenda o conceito e comece com um fluxo de baixo risco

Se este conceito corresponde a uma tarefa repetitiva real, comece com um fluxo pequeno que você possa revisar manualmente. Consulte preços, limites e restrições de módulos na página oficial.

✓ Comece com um fluxo de baixo risco✓ Mantenha a revisão humana✓ Preços e limites conforme a página oficial
Abrir o Make quando escolher o fluxo