Gerador de Hora Aleatória
Sorteia horários (HH:MM:SS) dentro de uma janela informada. Útil para preencher escalas e testes.
Gerador de hora aleatória explicado
Um gerador de hora aleatória sorteia um horário uniformemente em uma janela configurável (padrão 08:00–18:00). É útil para gerar dados de fixture (appointment_time, scheduled_at, horario_atendimento), semear protótipos de calendário, fazer fuzzing em parsers e gerar logs de evento realistas. Diferente de um timestamp Unix, esse gerador entrega só o componente de hora — sem data anexa.
Formato 24h vs 12h
O mundo está dividido entre duas notações:
- 24h (ISO 8601, militar, maior parte da Europa, Brasil, Portugal):
00:00a23:59. Sem ambiguidade, ordenável como string, única escolha sensata para armazenamento. - 12h (EUA, Reino Unido, Austrália coloquial):
1:00 AMa12:59 PM, repetindo. Cuidado com a pegadinha de meia-noite/meio-dia:12:00 AMé meia-noite e12:00 PMé meio-dia — tão contraintuitivo que manuais de estilo recomendam escrever "12 noon" / "12 midnight". - Hora militar: idêntica à 24h mas sem dois-pontos —
1430em vez de14:30, pronunciado "catorze cem".
Representações ISO 8601 de hora
O padrão ISO 8601 permite várias variantes para hora:
HH:MM → 14:30 (precisão de minuto)
HH:MM:SS → 14:30:45 (precisão de segundo)
HH:MM:SS.sss → 14:30:45.123 (milissegundo)
HH:MM:SS±HH:MM → 14:30:45-03:00 (com offset UTC)
HH:MM:SSZ → 14:30:45Z (UTC, o sufixo "Zulu")
Alguns stacks SQL legados aceitam HHMMSS sem separadores; evite em projetos novos — confunde humanos e date pickers.
Fusos e offsets estranhos
Existem 24 fusos nominais, mas a lista real tem muitos offsets fracionários. A Índia usa +05:30, a Terra Nova (Newfoundland) usa -03:30 e o Nepal fica em +05:45. Uma string de hora pelada como 14:30 é ambígua sem uma data e um fuso — por isso o ISO 8601 recomenda carregar offset quando o valor cruza sistemas.
O horário de verão (DST) introduz uma ambiguidade mais profunda: no dia em que o relógio "volta", a hora local entre 01:00 e 02:00 ocorre duas vezes. O Brasil aboliu o horário de verão em 2019 (Decreto 9.772/2019), então para dados brasileiros novos a ambiguidade sumiu — mas timestamps históricos pré-2019 ainda exigem tratamento cuidadoso.
Amostragem uniforme e casos de borda
O algoritmo é direto: converter os limites inferior e superior para segundos desde meia-noite, sortear um inteiro uniforme no intervalo e converter de volta:
lo = h1*3600 + m1*60
hi = h2*3600 + m2*60
sec = randInt(lo, hi)
out = `${(sec/3600|0).pad(2)}:${((sec/60|0)%60).pad(2)}:${(sec%60).pad(2)}`
Pegadinha sutil: uma faixa "overnight" como 22:00 → 04:00 atravessa meia-noite, e a subtração ingênua dá janela negativa. Resolva somando 24h ao limite superior e tirando o resto módulo 24h.
Perguntas frequentes
Posso restringir só ao horário comercial? Sim — defina De e Até conforme sua janela comercial (o padrão já cobre 08:00–18:00).
A saída inclui fuso horário? Não — o gerador emite valores HH:MM pelados. Se precisa de fuso, anexe no seu pipeline (ex.: 14:30 America/Sao_Paulo).
Posso gerar horas overnight (22:00 a 04:00)? A maior parte dos geradores assume janela no mesmo dia. Para overnight, gere dois lotes (22:00–23:59 e 00:00–04:00) e concatene.
Para que serve? Semear campos mock de created_at, scheduled_at e horario_consulta, gerar escalas aleatórias para testar algoritmos de scheduling, simular tempos de chegada para simulações de fila, e stress-testar bibliotecas de parsing de hora com entrada realista.
Ferramentas Relacionadas
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 Emojis Aleatórios
Gera uma sequência de emojis aleatórios — escolha tema (geral, comida, animais, esportes) e quantidade. Útil para design, mockups e mensagens.
Gerador de Timestamp Aleatório
Sorteia timestamps Unix dentro de um intervalo de datas. Útil para popular tabelas de teste.