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 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.


Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.


O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.


Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.


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.