> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Como alterar o fuso horário (timezone) da aplicação

# Como alterar o fuso horário da sua aplicação

**Perguntas e Sintomas Comuns:**
* "A hora do meu projeto/bot está errada."
* "Meu sistema está registrando logs com 3 horas de diferença (para mais ou para menos)."
* "Como mudar o fuso horário (timezone) para o horário de Brasília?"
* "Por que o horário do servidor não é o do Brasil?"

## Por que a hora do projeto está diferente?

Os servidores da Square Cloud estão localizados em Nova York, EUA. Por padrão, o fuso horário é configurado em UTC-0. 

Neste artigo, ensinamos como você pode personalizar o fuso horário da sua aplicação para qualquer região desejada, corrigindo diferenças de horário no seu código.

## Como configurar o fuso horário correto

### Método 1 (mais simples): variável de ambiente TZ

Na maioria dos runtimes Linux, dá para ajustar o fuso sem tocar no código: no dashboard da Square Cloud, em **Variáveis de Ambiente (ENV)**, adicione a variável `TZ` com o valor da sua região (ex.: `TZ=America/Sao_Paulo`) e reinicie a aplicação. Se o seu runtime ignorar a `TZ` (alguns ambientes fixam o relógio em UTC), use o método via código abaixo, que sempre funciona.

### Método 2 (garantido): converter no código

Os exemplos a seguir aplicam a conversão de fuso horário direto no código, em JavaScript e Python:

### JavaScript

**1. Usando a API Nativa**
```javascript
const date = new Date();
const dateString = date.toLocaleString("pt-BR", { timeZone: "America/Sao_Paulo" });
console.log(dateString);
```

**2. Usando a biblioteca Moment.js**
```javascript
const moment = require('moment');
require('moment-timezone');

const date = moment();
const time = date.tz('America/Sao_Paulo');

// Define the format string for date and time representation
// YYYY: Ano com quatro dígitos (ex.: 2022)
// MM: Mês com dois dígitos (ex.: 01 para janeiro)
// DD: Dia do mês com dois dígitos (ex.: 01)
// HH: Hora em formato 24h com dois dígitos (ex.: 13)
// mm: Minuto com dois dígitos (ex.: 05)
// ss: Segundo com dois dígitos (ex.: 09)
const formattedTime = time.format('YYYY-DD-MM HH:mm:ss');
console.log(formattedTime); // Exibe a data e hora no fuso "America/Sao_Paulo"
```

### Python

**1. Usando biblioteca Nativa (timedelta)**
```python
from datetime import datetime, timedelta

# Cria um objeto datetime
now = datetime.now()

# Define a diferença de fuso horário (-3 horas para America/Sao_Paulo)
time_difference = timedelta(hours=-3)

# Aplica a diferença para alterar o fuso horário
time = now + time_difference

# Formata data e hora
formatted_time = time.strftime('%Y-%d-%m %H:%M:%S')
print(formatted_time)  # Exibe a data e hora no fuso "America/Sao_Paulo"
```

**2. Usando a biblioteca Pytz**
```python
from datetime import datetime
import pytz

# Cria um objeto datetime em UTC
now = datetime.now(pytz.utc)

# Define o fuso "America/Sao_Paulo"
tz = pytz.timezone('America/Sao_Paulo')

# Converte para o fuso definido
time = now.astimezone(tz)

# Formata data e hora
formatted_time = time.strftime('%Y-%d-%m %H:%M:%S')
print(formatted_time)  # Exibe a data e hora no fuso "America/Sao_Paulo"
```
