Gerador de Data Aleatória
Gera datas aleatórias dentro de um intervalo definido — útil para popular bancos de teste, fixtures de aplicação ou planilhas mock.
Gerador de data aleatória em profundidade
Um gerador de data aleatória produz datas de calendário uniformemente distribuídas dentro de uma faixa configurável. É um cavalo de batalha silencioso para QAs alimentando bancos com aniversários fictícios, criadores de conteúdo escolhendo datas de publicação, romancistas espalhando eventos por uma linha do tempo ficcional, organizadores de sorteios escolhendo o dia premiado e cientistas de dados montando séries temporais sintéticas. A ferramenta acima permite definir uma faixa De/Até e uma quantidade entre 1 e 100.
O algoritmo interno é direto: converter os dois limites para timestamp Unix (segundos ou milissegundos desde 1970-01-01T00:00:00Z), sortear um inteiro uniforme em [inicio, fim] e reconverter para um objeto Date. Cada dia válido da janela tem exatamente a mesma probabilidade de ser sorteado.
Gregoriano, Juliano e anos bissextos
As datas modernas seguem o calendário Gregoriano, proclamado pelo Papa Gregório XIII na bula Inter Gravissimas em 1582 e adotado no mesmo ano pelo Brasil colônia. Ele substituiu o calendário Juliano (Júlio César, 46 a.C.), cujo ano de 365,25 dias era 11 minutos longo demais e havia deslocado o equinócio de primavera em dez dias. A diferença acumulada entre os dois sistemas é atualmente de 13 dias.
A regra Gregoriana de ano bissexto é: um ano é bissexto se divisível por 4, exceto se divisível por 100, excepcionalmente bissexto se divisível por 400. Por isso o ano 2000 foi bissexto, mas 1900 não. Esquecer a exceção do século é um dos bugs mais comuns em código de data caseiro:
function ehBissexto(y) {
return (y % 4 === 0 && y % 100 !== 0) || (y % 400 === 0);
}
ISO 8601, Unix epoch e Y2038
ISO 8601 é o formato de intercâmbio sem ambiguidades. Formatos principais:
YYYY-MM-DD— data de calendário (2026-05-27)YYYY-MM-DDTHH:MM:SS— datetime localYYYY-MM-DDTHH:MM:SSZ— datetime em UTC (Z = Zulu, offset zero)YYYY-MM-DDTHH:MM:SS-03:00— offset explícito (horário de Brasília)
O Unix epoch começa em 1970-01-01T00:00:00Z. Um contador de segundos em inteiro com sinal de 32 bits transborda em 19 de janeiro de 2038, às 03:14:07 UTC — o famoso problema Y2038, descendente moderno do Y2K (bug do ano de dois dígitos temido na virada do milênio). Timestamps de 64 bits empurram o horizonte para cerca de 292 bilhões de anos a partir de agora.
Pegadinhas comuns
- Timezones:
new Date('2026-05-27')é interpretado como meia-noite UTC mas exibido em hora local — muitas vezes o dia muda. Sempre seja explícito sobre a zona. - Horário de verão: o Brasil teve DST de 1985 a 2018 e o aboliu em 2019. Fixtures geradas em anos antigos podem cair na hora perdida ou duplicada.
- 29 de fevereiro: gerar "qualquer dia de 2025" jamais deve emitir
2025-02-29porque 2025 não é bissexto. - Datas inválidas:
2026-02-31silenciosamente vira março em algumas libs — valide antes de persistir.
Perguntas frequentes
Posso configurar a faixa de datas? Sim — os campos De e Até acima aceitam qualquer par de datas válidas. O padrão é 2000-01-01 a 2030-12-31, mas você pode escolher janelas pré-históricas ou de futuro distante.
A saída inclui horário? O padrão é apenas data (YYYY-MM-DD). Para fixtures de datetime, combine com um gerador de hora aleatória ou pós-processe o resultado.
Cobre toda a história da humanidade? Na prática, os browsers lidam com datas entre aproximadamente o ano 1 e o ano 275.760 d.C., mas a maioria das stacks server-side limita perto do ano 1 a 9999. Para QA, a janela típica é 1900-2100; para datasets sintéticos, do Unix epoch para frente (1970+) é mais seguro.
A distribuição é realmente uniforme? Sim — cada dia de calendário da janela escolhida tem probabilidade idêntica. A implementação usa Math.random(), suficiente para fixtures mas não criptograficamente seguro. Para sorteios com valor jurídico, use CSPRNG ou ata cartorial.
Ferramentas Relacionadas
Gerador de Cor Aleatória
Gere cores aleatórias nos formatos HEX, RGB e HSL com um clique. Ótimo para inspiração de design, paletas, testes de interface e quebrar o bloqueio criativo.
Gerador de String Aleatória
Gere strings aleatórias customizáveis — defina alfabeto (A-Z, a-z, 0-9, hex, base32, base58, símbolos), tamanho e quantidade. Útil para tokens, IDs e fixtures. Tudo no navegador.
Gerador de Hora Aleatória
Sorteia horários (HH:MM:SS) dentro de uma janela informada. Útil para preencher escalas e testes.