> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/double-braces-functions/date-functions.md).

# Funções de data

As funções de data são usadas para processar, gerar e converter datas. Elas estão disponíveis para conectores que suportam expressões Double Braces. Para saber como fornecer informações aos conectores usando esse recurso, consulte [Funções Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/double-braces-functions.md).

## FORMATDATE

Usando Double Braces, você pode combinar esta função com o acesso ao elemento JSON de entrada de um conector.

`FORMATDATE` formata valores de data e hora, com suporte opcional para locale e timezone.

### Sintaxe

{% code overflow="wrap" %}

```
FORMATDATE(value, "formato-origem", "formato-destino", "locale-origem"?, "timezone-origem"?, "locale-destino"?, "timezone-destino"?)
```

{% endcode %}

{% hint style="info" %}
Parâmetros marcados com `?` são opcionais e podem ser definidos como `null`.&#x20;
{% endhint %}

**Definição do formato de data:** `dd/MM/yyyy`. Você também pode usar a palavra-chave `timestamp` no lugar de uma string de formato. O valor sempre será convertido usando ISO Zoned Date/Time.

### Padrões de formato de data e hora

Consulte a [documentação Java DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) para mais detalhes sobre padrões de formato de data e hora.

**Padrões comuns:**

| Padrão   | Descrição              |
| -------- | ---------------------- |
| `y`      | Ano (ano da era)       |
| `u`      | Ano                    |
| `M`      | Mês do ano             |
| `d`      | Dia do mês             |
| `E`      | Dia da semana (texto)  |
| `e`, `c` | Dia da semana (número) |
| `D`      | Dia do ano (1–365)     |
| `H`      | Hora (0–23)            |
| `h`      | Hora (1–12)            |
| `a`      | Marcador AM/PM         |
| `m`      | Minutos                |
| `s`      | Segundos               |

### Exemplo de entrada

```json
{
  "date": "10/10/2010 11:59:59",
  "date_no_time": "30/10/2010",
  "time_no_date": "11:12:13",
  "timestamp_date": 1564670039000,
  "date_time_utc": "2012-10-01T09:45:00.0000000+00:00"
}
```

### Exemplos de conversão

{% code overflow="wrap" %}

```json
{
  "timezone_conversion": {{ FORMATDATE(message.date, "dd/MM/uuuu HH:mm:ss", "dd/MM/uuuu HH:mm:ss z", null, "GMT-3", null, "UTC") }},

  "simple_date": {{ FORMATDATE(message.date_no_time, "dd/MM/uuuu", "MM/dd/uuuu") }},

  "simple_time": {{ FORMATDATE(message.time_no_date, "HH:mm:ss", "ss:mm:HH") }},

  "date_from_timestamp": {{ FORMATDATE(message.timestamp_date, "timestamp", "dd/MM/uuuu HH:mm:ss") }},

  "simple_date_to_timestamp": {{ FORMATDATE(message.simple_date, "dd/MM/uuuu", "timestamp") }},

  "iso_date_time": {{ FORMATDATE(message.timestamp_date, "timestamp", null) }},

  "date_month_name_pt_br": {{ FORMATDATE(NOW(), "timestamp", "dd/MMMM/uuuu", null, null, "pt-BR", null) }},

  "date_time_utc": {{ FORMATDATE(message.date_time_utc, "uuuu-MM-dd'T'HH:mm:ss.SSSSSSSXXX", "dd/MM/uuuu HH:mm:ss") }}
}
```

{% endcode %}

## NOW

Usando Double Braces, você pode combinar esta função com o acesso ao elemento JSON de entrada de um conector.

`NOW` retorna a data e hora atuais como um timestamp em milissegundos.

### Sintaxe

```
NOW()
```

### Exemplos de uso

```json
{
  "now": {{ NOW() }},

  "currentDate": {{ FORMATDATE(NOW(), "timestamp", "uuuuMMdd", null, "GMT-3") }},

  "currentTime": {{ FORMATDATE(NOW(), "timestamp", "HHmmss", null, "GMT-3") }},

  "tomorrow": {{ FORMATDATE(TOLONG(SUM(NOW(), 86400000)), "timestamp", "uuuuMMdd") }},

  "time5minBefore": {{ TOLONG(SUBTRACT(NOW(), TOLONG("300000"))) }}
}
```

## SUMDATE

Usando Double Braces, você pode combinar esta função com o acesso ao elemento JSON de entrada de um conector.

`SUMDATE` adiciona ou subtrai uma determinada quantidade de tempo de uma data, com base em uma unidade de tempo especificada.

### Sintaxe

```
SUMDATE(milliseconds:number, unit:string, value:string)
```

**Parâmetros:**

* `milliseconds` — a data de entrada como um timestamp Unix.
* `unit` — a unidade de tempo a ser aplicada. Valores aceitos: `hour`, `minute`, `second`, `day`, `month` e `year`.
* `value` — a quantidade de tempo a ser adicionada (use um número negativo para subtrair).
* `zoneId` — *(opcional)* o fuso horário da data de entrada. O padrão é `UTC`.

<details>

<summary><strong>Fusos horários aceitos</strong></summary>

* Australia/Darwin
* Australia/Sydney
* America/Argentina/Buenos\_Aires
* Africa/Cairo
* America/Anchorage
* America/Sao\_Paulo
* Asia/Dhaka
* Africa/Harare
* America/St\_Johns
* America/Chicago
* Asia/Shanghai
* Africa/Addis\_Ababa
* Europe/Paris
* America/Indiana/Indianapolis
* Asia/Kolkata
* Asia/Tokyo
* Pacific/Apia
* Asia/Yerevan
* Pacific/Auckland
* Asia/Karachi
* America/Phoenix
* America/Puerto\_Rico
* America/Los\_Angeles
* Pacific/Guadalcanal
* Asia/Ho\_Chi\_Minh

</details>

### Exemplo

Para adicionar 10 segundos a um timestamp:

```json
{
  "test": {{ SUMDATE(1599368565518, "SECOND", 10) }}
}
```

**Resultado esperado:**

```json
{ 1599368565528 }
```

## TOISODATE

Usando Double Braces, você pode combinar esta função com o acesso ao elemento JSON de entrada de um conector.

`TOISODATE` converte um valor de data e hora para o formato ISO Date, com suporte opcional a locale e timezone.

### Sintaxe

```
TOISODATE(value, "formatoOrigem", "formatoDestino", "locale"?, "timezone"?)
```

{% hint style="info" %}
Parâmetros marcados com `?` são opcionais e podem ser definidos como `null`.&#x20;
{% endhint %}

**Definição do formato de data:** `dd/MMMM/yyyy HH:mm:ss`. Você também pode usar a palavra-chave `timestamp` no lugar de uma string de formato. Se nenhum timezone for especificado, o UTC será usado por padrão.

### Exemplo de entrada

```json
{
  "date": "10/10/2010 11:59:59",
  "date_with_tz": "10/10/2010 11:59:59 GMT-03:00",
  "localized_date_with_tz": "10/Outubro/2010 11:59:59 GMT-03:00",
  "timestamp_date": "1564670039000",
  "date_no_time": "30/09/2018"
}
```

### Exemplos de conversão

{% code overflow="wrap" %}

```json
{
  "forced_utc_no_locale": {{ TOISODATE(message.date, "dd/MM/uuuu HH:mm:ss", null, "UTC") }},

  "inferred_tz_no_locale": {{ TOISODATE(message.date_with_tz, "dd/MM/uuuu HH:mm:ss z") }},

  "localized_date_with_tz": {{ TOISODATE(message.localized_date_with_tz, "dd/MMMM/uuuu HH:mm:ss z", "pt-BR") }},

  "date_generated_from_timestamp": {{ TOISODATE(message.timestamp_date, "timestamp") }},

  "iso_datetime_from_date_only": {{ TOISODATE(message.date_no_time, "dd/MM/uuuu", null, "GMT-3") }}
}
```

{% endcode %}

## DIFFDATE

`DIFFDATE` calcula a diferença entre duas datas.

### Sintaxe

```
DIFFDATE(timestamp1, timestamp2, "timeUnit")
```

**Parâmetros:**

* `timestamp1`, `timestamp2` — ambas as datas devem ser fornecidas no formato timestamp.
* `timeUnit` — valores aceitos: `year`, `month`, `day`, `hour`, `minute`, `second` e `millisecond`.

{% hint style="info" %}
O cálculo é realizado como: `timestamp2 - timestamp1`.&#x20;
{% endhint %}

**Observações:**

* Se a diferença entre as duas datas for menor que 1 unidade, o resultado será `0`.
* Se `timestamp1` for maior que `timestamp2`, a função retorna um valor negativo.

### Exemplo de entrada

```json
{
  "timestamp1": "1550458800000",
  "timestamp2": "1613617200000"
}
```

### Exemplos de aplicação

```json
{
  "years": {{ DIFFDATE(message.timestamp1, message.timestamp2, "year") }},

  "months": {{ DIFFDATE(message.timestamp1, message.timestamp2, "month") }},

  "hours": {{ DIFFDATE(message.timestamp1, message.timestamp2, "hour") }}
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/double-braces-functions/date-functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
