0Pricing
JavaScript Academy · Aula

Fusos horários e UTC

Trate UTC e o horário local corretamente.

Fusos horários e UTC é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 4 aulas no total.

Hora local versus UTC

Uma data armazena um momento absoluto, mas pode ser lida no horário local ou em UTC, o horário de referência global. Os métodos de leitura existem nas duas formas.

const d = new Date(Date.UTC(2024, 0, 15, 12, 0, 0))
console.log(d.getUTCHours())

Métodos de leitura UTC

Métodos com o prefixo UTC, como getUTCFullYear e getUTCHours, leem os componentes da data no fuso UTC, independentemente da máquina.

const d = new Date(Date.UTC(2024, 5, 15, 8, 30, 0))
console.log(d.getUTCFullYear())
console.log(d.getUTCHours())
console.log(d.getUTCMinutes())

getTimezoneOffset

getTimezoneOffset retorna a diferença entre o horário local e UTC em minutos. Um valor positivo significa que o horário local está atrasado em relação a UTC.

const d = new Date()
const offset = d.getTimezoneOffset()
console.log(typeof offset)

Sinal do offset

O sinal do offset é o oposto do que muitas pessoas esperam: um fuso adiantado em relação a UTC produz um offset negativo. Converta minutos em horas dividindo por 60.

const offsetMinutes = 120
const hours = offsetMinutes / 60
console.log(hours)

Criando datas UTC

Date.UTC aceita os mesmos argumentos de componentes que o construtor, mas os interpreta como UTC e retorna uma marca temporal que pode ser passada para new Date.

const ts = Date.UTC(2024, 0, 1, 0, 0, 0)
const d = new Date(ts)
console.log(d.getUTCHours())

Métodos de definição UTC

Métodos de definição como setUTCHours ajustam uma data no fuso UTC, de forma equivalente aos métodos de definição locais, mas ancorados em UTC.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
d.setUTCHours(15)
console.log(d.getUTCHours())

O Z nas cadeias ISO

O Z no final de uma cadeia ISO significa que o horário está em UTC, também chamado de horário Zulu. Cadeias sem esse caractere podem ser interpretadas como horário local.

const d = new Date("2024-01-15T10:00:00Z")
console.log(d.getUTCHours())

Mesmo instante, leituras diferentes

Os métodos de leitura locais e UTC descrevem o mesmo instante em fusos diferentes, portanto seus valores de hora podem diferir pelo offset.

const d = new Date(Date.UTC(2024, 0, 1, 12, 0, 0))
console.log(d.getUTCHours())

Armazenando em UTC

Uma prática recomendada comum é armazenar todas as datas em UTC e convertê-las para o horário local somente na exibição, evitando ambiguidades entre regiões.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
console.log(d.toISOString())

Especificando um fuso horário

Métodos de formatação aceitam uma opção timeZone para que você possa exibir explicitamente um momento em um fuso escolhido, como UTC.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
const text = d.toLocaleString("en-US", { timeZone: "UTC" })
console.log(typeof text)

Evitando armadilhas

Misturar métodos locais e UTC na mesma data causa erros sutis. Escolha um modelo por cálculo e aplique-o de forma consistente.

const d = new Date(Date.UTC(2024, 0, 1, 0, 0, 0))
console.log(d.getUTCFullYear())
console.log(d.getUTCMonth())

Verificação rápida

Teste seus conhecimentos sobre fusos horários.

Recapitulação

Recapitulação: Leia e escreva datas de forma consistente no horário local ou em UTC.

  • Os métodos de leitura e definição UTC funcionam no fuso global
  • getTimezoneOffset retorna minutos, com o sinal invertido
  • O sufixo Z indica que uma cadeia ISO está em UTC
  • Armazene em UTC e exiba no horário local
const d = new Date(Date.UTC(2024, 0, 1, 12, 0, 0))
console.log(d.getUTCHours())

Perguntas Frequentes

A aula “Fusos horários e UTC” é grátis?

Sim — o texto completo de “Fusos horários e UTC” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 4 aulas no total.

O que vou aprender em “Fusos horários e UTC”?

Trate UTC e o horário local corretamente. Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Fusos horários e UTC”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criando e lendo datas
  2. Marcas de tempo e cálculos com datas
  3. Formatando datas
  4. Fusos horários e UTC
← Voltar para JavaScript Academy