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?

O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.


A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.


Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.


Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.


O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.