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
const date = new Date();
const dateString = date.toLocaleString("pt-BR", { timeZone: "America/Sao_Paulo" });
console.log(dateString);
2. Usando la biblioteca Moment.js
const moment = require('moment');
require('moment-timezone');
const date = moment();
const time = date.tz('America/Sao_Paulo');
// Define el formato de fecha y hora
// YYYY: Año con cuatro dígitos (ej.: 2022)
// MM: Mes con dos dígitos (ej.: 01 para enero)
// DD: Día del mes con dos dígitos (ej.: 01)
// HH: Hora en formato 24h con dos dígitos (ej.: 13)
// mm: Minuto con dos dígitos (ej.: 05)
// ss: Segundo con dos dígitos (ej.: 09)
const formattedTime = time.format('YYYY-MM-DD HH:mm:ss');
console.log(formattedTime); // Muestra la fecha y hora en la zona "America/Sao_Paulo"
Python
1. Usando la biblioteca nativa (timedelta)
from datetime import datetime, timedelta, timezone
# Crea un objeto datetime en UTC (o usa datetime.now(ZoneInfo('America/Sao_Paulo')))
now = datetime.now(timezone.utc)
# Define la diferencia de zona horaria (-3 horas para America/Sao_Paulo)
time_difference = timedelta(hours=-3)
# Aplica la diferencia para cambiar la zona horaria
time = now + time_difference
# Formatea fecha y hora
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_time) # Muestra la fecha y hora en la zona "America/Sao_Paulo"
2. Usando la biblioteca Pytz
from datetime import datetime
import pytz
# Crea un objeto datetime en UTC
now = datetime.now(pytz.utc)
# Define la zona "America/Sao_Paulo"
tz = pytz.timezone('America/Sao_Paulo')
# Convierte a la zona definida
time = now.astimezone(tz)
# Formatea fecha y hora
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_time) # Muestra la fecha y hora en la zona "America/Sao_Paulo"
Actualizado el: 04/10/2026
¡Gracias!
