O Que É a Conversão de Fuso Horário?
Um conversor de fuso horário traduz uma data e hora de um fuso para outro, permitindo ver instantaneamente o horário equivalente em qualquer lugar do mundo. O mundo é dividido em 24 fusos horários primários, cada um definido como um deslocamento fixo em relação ao Horário Universal Coordenado (UTC). Quando são 14:00 UTC, são 11:00 em São Paulo (UTC-3) e 23:00 em Tóquio (UTC+9). Converter entre fusos corretamente exige conhecer o deslocamento UTC tanto da zona de origem quanto da de destino, e se o horário de verão está em vigor em uma delas.
O banco de dados de fusos horários IANA (frequentemente chamado de banco de dados Olson ou tz database) é a fonte padrão de definições de fusos usada por sistemas operacionais, linguagens de programação e navegadores web. Ele atribui um identificador canônico a cada zona no formato Região/Cidade, como America/Sao_Paulo ou Asia/Tokyo. Ao contrário das abreviações fixas como EST ou PST, os identificadores IANA codificam o histórico completo de mudanças de deslocamento UTC e transições de horário de verão para cada região, tornando-os a única forma confiável de converter horários em datas do passado ou do futuro.
Este conversor de fuso horário utiliza os dados IANA embutidos no motor JavaScript do seu navegador por meio da API Intl. Você seleciona um fuso de origem, insere uma data e hora, e a ferramenta calcula imediatamente o horário equivalente no fuso de destino, incluindo quaisquer ajustes de horário de verão. Como tudo roda diretamente no seu navegador, não há requisição ao servidor e nenhum dado sai do seu dispositivo.
Por Que Usar Este Conversor de Fuso Horário?
A matemática manual de fusos horários é propensa a erros, especialmente quando o horário de verão está envolvido. Uma cidade que é UTC-5 em janeiro pode ser UTC-4 em julho, e as datas de transição diferem entre países. Os Estados Unidos e a Europa mudam seus relógios em domingos diferentes, criando uma janela de duas semanas em que o deslocamento entre Nova York e Londres difere do restante do ano. Esta ferramenta trata todas essas transições automaticamente usando o mesmo banco de dados IANA que o seu sistema operacional utiliza.
Casos de Uso do Conversor de Fuso Horário
Referência de Fusos Horários IANA
O banco de dados de fusos horários IANA define mais de 400 identificadores e é atualizado várias vezes por ano para refletir mudanças políticas, novas regras de horário de verão e correções históricas. A tabela abaixo lista as zonas mais usadas com seus deslocamentos UTC padrão e comportamento de horário de verão. Os deslocamentos mostrados são para o horário padrão; a coluna DST mostra o deslocamento ajustado quando o horário de verão está ativo para aquela região.
| Identificador IANA | Nome Comum | Deslocamento UTC | DST |
|---|---|---|---|
| UTC | Coordinated Universal Time | +00:00 | No |
| America/New_York | Eastern Time (US) | -05:00 | Yes (EDT -04:00) |
| America/Chicago | Central Time (US) | -06:00 | Yes (CDT -05:00) |
| America/Denver | Mountain Time (US) | -07:00 | Yes (MDT -06:00) |
| America/Los_Angeles | Pacific Time (US) | -08:00 | Yes (PDT -07:00) |
| Europe/London | Greenwich Mean Time | +00:00 | Yes (BST +01:00) |
| Europe/Berlin | Central European Time | +01:00 | Yes (CEST +02:00) |
| Europe/Moscow | Moscow Time | +03:00 | No |
| Asia/Dubai | Gulf Standard Time | +04:00 | No |
| Asia/Kolkata | India Standard Time | +05:30 | No |
| Asia/Shanghai | China Standard Time | +08:00 | No |
| Asia/Tokyo | Japan Standard Time | +09:00 | No |
| Australia/Sydney | Australian Eastern Time | +10:00 | Yes (AEDT +11:00) |
| Pacific/Auckland | New Zealand Standard Time | +12:00 | Yes (NZDT +13:00) |
Exemplos de Código
Todas as principais linguagens de programação oferecem conversão de fuso horário por meio do banco de dados IANA. Os exemplos abaixo mostram como converter um timestamp UTC para outros fusos em JavaScript usando a API Intl, em Python usando o módulo zoneinfo, em Go usando o pacote time, e com o comando GNU date para scripts shell.
// Convert a date from one timezone to another
const date = new Date('2026-03-15T09:00:00Z')
// Format in specific timezone
const nyTime = date.toLocaleString('en-US', { timeZone: 'America/New_York' })
// → "3/15/2026, 5:00:00 AM"
const tokyoTime = date.toLocaleString('en-US', { timeZone: 'Asia/Tokyo' })
// → "3/15/2026, 6:00:00 PM"
// Get the UTC offset for a timezone programmatically
function getUtcOffset(tz: string, date = new Date()) {
const fmt = new Intl.DateTimeFormat('en-US', {
timeZone: tz,
timeZoneName: 'longOffset',
})
const parts = fmt.formatToParts(date)
return parts.find(p => p.type === 'timeZoneName')?.value ?? ''
}
getUtcOffset('Asia/Kolkata') // → "GMT+05:30"from datetime import datetime
from zoneinfo import ZoneInfo
# Create a timezone-aware datetime
dt = datetime(2026, 3, 15, 9, 0, tzinfo=ZoneInfo('UTC'))
# Convert to New York time
ny = dt.astimezone(ZoneInfo('America/New_York'))
print(ny) # → 2026-03-15 05:00:00-04:00 (EDT in March)
# Convert to Tokyo time
tokyo = dt.astimezone(ZoneInfo('Asia/Tokyo'))
print(tokyo) # → 2026-03-15 18:00:00+09:00
# Get current time in any timezone
now_berlin = datetime.now(ZoneInfo('Europe/Berlin'))
print(now_berlin.strftime('%Y-%m-%d %H:%M %Z')) # → 2026-03-15 10:00 CETpackage main
import (
"fmt"
"time"
)
func main() {
utc := time.Date(2026, 3, 15, 9, 0, 0, 0, time.UTC)
// Load timezone by IANA name
ny, _ := time.LoadLocation("America/New_York")
tokyo, _ := time.LoadLocation("Asia/Tokyo")
fmt.Println(utc.In(ny)) // → 2026-03-15 05:00:00 -0400 EDT
fmt.Println(utc.In(tokyo)) // → 2026-03-15 18:00:00 +0900 JST
// Get the UTC offset in seconds
_, offset := utc.In(ny).Zone()
fmt.Printf("UTC offset: %+d hours\n", offset/3600) // → UTC offset: -4 hours
}# Display current time in a specific timezone TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S %Z' # → 2026-03-15 18:00:00 JST # Convert a UTC timestamp to another timezone TZ='America/Los_Angeles' date -d '2026-03-15T09:00:00Z' '+%Y-%m-%d %H:%M %Z' # → 2026-03-15 02:00 PDT # List all available IANA timezone names timedatectl list-timezones | head -20