> ## 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).

# Cómo cambiar la zona horaria (timezone) de la app

# Cómo cambiar la zona horaria de tu aplicación

**Preguntas y síntomas comunes:**
* "La hora de mi proyecto/bot está incorrecta."
* "Mi sistema está registrando logs con 3 horas de diferencia (de más o de menos)."
* "¿Cómo cambiar la zona horaria (timezone) a la hora local?"
* "¿Por qué la hora del servidor no es la de mi región?"

## ¿Por qué la hora del proyecto está diferente?

Los servidores de Square Cloud están ubicados en Nueva York, EE. UU. Por defecto, la zona horaria está configurada en UTC-0.

En este artículo, te enseñamos cómo puedes personalizar la zona horaria de tu aplicación para cualquier región deseada, corrigiendo las diferencias de horario en tu código.

## Cómo configurar la zona horaria correcta

### Método 1 (el más simple): la variable de entorno TZ

En la mayoría de los runtimes Linux puedes ajustar la zona horaria sin tocar el código: en el dashboard de Square Cloud, en **Variables de Entorno (ENV)**, añade la variable `TZ` con tu región (ej.: `TZ=America/Sao_Paulo`) y reinicia la app. Si tu runtime ignora `TZ` (algunos entornos fijan el reloj en UTC), usa el método por código de abajo, que siempre funciona.

### Método 2 (garantizado): convertir en el código

Los siguientes ejemplos aplican la conversión de zona horaria directamente en el código, en JavaScript y Python:

### JavaScript

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

**2. Usando la 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 la 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 la 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"
```