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?

A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.


Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.


A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.


O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.


O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.