O objeto Date existe desde os primórdios do JavaScript.

Ele parece simples, mas é responsável por uma quantidade enorme de bugs em aplicações reais.

Antes de aprender alternativas modernas, precisamos entender:

por que o Date é problemático.

🎯 Objetivo da aula

Ao final desta aula, você será capaz de:

  • Entender as limitações do objeto Date
  • Reconhecer bugs comuns envolvendo datas
  • Identificar armadilhas com fusos horários
  • Separar formatação de lógica de datas
  • Compreender por que novas APIs surgiram

O objeto Date parece simples…

À primeira vista, tudo parece tranquilo:

 
  const agora = new Date();
  console.log(agora);
  // Saída será algo como: Wed Jan 21 2026 14:00:00 GMT-0300

Mas essa simplicidade é enganosa.

Problema 1 — Meses começam em zero 🤯

 
  const data = new Date(2026, 0, 21);
  console.log(data);
  // Saída será: 21 de janeiro de 2026

Aqui:

  • Janeiro = 0
  • Fevereiro = 1
  • Dezembro = 11
Isso é fonte constante de erros off-by-one.

Problema 2 — Mutabilidade silenciosa

O objeto Date é mutável.

 
  const data = new Date();
  data.setDate(data.getDate() + 1);
  console.log(data);
  // Saída será: data alterada

Se você passar esse objeto para outra função:

  • ele pode ser alterado sem aviso
  • bugs aparecem longe da origem
Mutabilidade + datas = bugs difíceis de rastrear.

Problema 3 — Fuso horário implícito

Veja este código:

 
  const data = new Date("2026-01-21");
  console.log(data);
  // Saída depende do fuso horário

Dependendo do fuso:

  • a data pode virar dia 20
  • ou dia 21
A mesma string pode gerar datas diferentes em máquinas diferentes.

Problema 4 — Strings ambíguas

O Date aceita vários formatos de string:

 new Date("01/02/2026"); // ❓ 

Isso é:

  • 1 de fevereiro?
  • 2 de janeiro?
O resultado varia por ambiente e navegador.

Problema 5 — API confusa e extensa

O objeto Date tem:

  • getDate
  • getDay
  • getMonth
  • getFullYear

E todos retornam números diferentes com significados diferentes.

É fácil confundir dia do mês com dia da semana.

Problema 6 — Cálculos são perigosos

 
  const inicio = new Date("2026-01-01"); 
  const fim = new Date("2026-02-01");
  const diferenca = fim - inicio;
  console.log(diferenca);
  // Saída será: milissegundos

Você recebe:

  • milissegundos
  • sem contexto
  • sem semântica
Tudo vira matemática de baixo nível.

Problema 7 — Mistura de responsabilidades

O Date tenta ser tudo ao mesmo tempo:

  • data
  • hora
  • fuso
  • formatação

Isso gera:

  • API inchada
  • pouca clareza

Tentativas de solução (parciais)

Ao longo dos anos, surgiram alternativas:

  • moment.js (hoje descontinuado)
  • date-fns
  • luxon

Mas o JavaScript precisava de algo:

nativo, moderno e correto.

Resumo do problema

  • API antiga
  • mutável
  • confusa
  • dependente de fuso
  • propensa a erros
O problema não é você — é o Date.

Resumo da aula para nunca mais esquecer

  • O objeto Date é antigo e problemático
  • Meses começam em zero
  • Datas são mutáveis
  • Fusos causam bugs silenciosos
  • Precisamos de uma alternativa moderna

Na próxima aula, vamos conhecer essa alternativa:

Introdução à Temporal API.


HARDWARE

Entendendo o seu computador

O que há dentro do meu computador?

Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.


Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.


O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.


O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.