Conversor de Unix Timestamp (Epoch ⇄ Data)
Entradas
| Direção da conversão | Epoch → Data |
|---|---|
| Unix timestamp | 1.784.550.784 |
| Unidade do timestamp | Segundos |
| Data | 20 de jul. de 2026 |
Conversor de Unix Timestamp (Epoch ⇄ Data)
Converta um Unix timestamp para data e hora UTC e ISO 8601, ou converta uma data do calendário para o valor em segundos ou milissegundos desde o epoch Unix.
Entradas
Entrada
Resultados
Insira um valor para ver os resultados.
Resultado
Unix Timestamp (Epoch ⇄ Data)
Um Unix timestamp é um número inteiro que contabiliza os segundos decorridos desde 1970-01-01 00:00:00 UTC — o chamado epoch Unix. Sistemas de software utilizam esse valor como representação compacta e inequívoca de qualquer instante no tempo, independente de fuso horário ou convenção de calendário. Esta calculadora converte entre um epoch numérico e uma data legível nos dois sentidos.
O epoch Unix: origem e definição
O ponto de partida, 1970-01-01 00:00:00 UTC, é um artefato do desenvolvimento inicial do Unix nos Laboratórios Bell. Quando a equipe de Ken Thompson e Dennis Ritchie escrevia o kernel original no final dos anos 1960, era necessário um instante fixo de referência para cálculos de tempo. A escolha foi arbitrária; o que importava era a consistência entre todas as máquinas que rodavam o sistema. A convenção foi incorporada ao padrão POSIX e chegou a praticamente todos os sistemas operacionais e linguagens de programação em uso atualmente.
Um timestamp de 0 representa o próprio epoch. Um timestamp de 86.400 representa exatamente um dia depois (60 s × 60 min × 24 h). Valores negativos representam instantes anteriores a 1970 — a maioria das implementações modernas suporta datas que remontam a milênios.
Segundos e milissegundos
O padrão Unix original conta segundos inteiros. A maior parte do ecossistema Unix — arquivos de log de servidores, registros em bancos de dados, utilitários de shell — ainda usa timestamps com precisão de segundo, gerando valores de 10 dígitos para datas nas décadas de 2000 e 2030.
O JavaScript introduziu uma variante com precisão de milissegundo: Date.now() e Date.getTime() retornam o número de milissegundos desde o epoch, produzindo valores de 13 dígitos. Muitas APIs REST, fluxos de eventos e bancos de dados voltados ao JavaScript seguem essa convenção.
A regra prática: um número com 10 dígitos está quase certamente em segundos; um número com 13 dígitos está quase certamente em milissegundos. Para converter milissegundos em segundos, divide-se por 1.000 — esta calculadora realiza essa conversão automaticamente quando a unidade milissegundos é selecionada.
Como a conversão funciona
Epoch para data. Dado um timestamp em segundos, a data e hora UTC são determinadas por:
diashoraˊrio do dia=⌊86400t⌋=tmod86400A contagem de dias é então mapeada para uma data no calendário gregoriano proléptico, considerando os anos bissextos. O horário do dia é decomposto em horas, minutos e segundos por divisões modulares sucessivas.
Data para epoch. Dada uma data do calendário à meia-noite UTC, o epoch é calculado contando o número de dias a partir de 1970-01-01 e multiplicando por 86.400. Para uma data como 2024-01-01, a contagem de dias é 19.723 (10.957 dias de 1970 a 1999, mais 8.766 dias de 2000 a 2023), resultando em:
A calculadora utiliza a API de datas nativa para tratar anos bissextos e casos limítrofes do calendário com precisão.
O Problema do Ano 2038
Muitos sistemas legados armazenam Unix timestamps como inteiros de 32 bits com sinal. O maior valor que um inteiro de 32 bits com sinal comporta é 2.147.483.647, correspondente a 2038-01-19 03:14:07 UTC. Após esse instante, o contador transborda para o valor mais negativo representável em 32 bits, fazendo esses sistemas interpretarem a data como 1901-12-13.
Sistemas modernos de 64 bits não são afetados. Um inteiro de 64 bits com sinal pode representar timestamps que vão de aproximadamente 292 bilhões de anos no passado a 292 bilhões de anos no futuro — muito além de qualquer preocupação prática. O Problema do Ano 2038 é, portanto, uma questão de software legado, não uma limitação fundamental do conceito de epoch Unix. A maioria dos sistemas operacionais, bancos de dados e linguagens de programação amplamente utilizados já migrou para armazenamento de tempo em 64 bits antes de 2020.
Pontos de atenção
Fusos horários. Um Unix timestamp conta sempre os segundos desde a meia-noite UTC de 1970-01-01 e não codifica fuso horário algum. Para converter um horário local em epoch, é necessário converter primeiro para UTC. Esta calculadora converte datas usando a meia-noite UTC, que é a interpretação padrão para entradas de data sem horário especificado.
Segundos intercalares. O epoch Unix não contabiliza segundos intercalares (leap seconds) — assume exatamente 86.400 segundos em cada dia. Consequentemente, os Unix timestamps não são estritamente equivalentes ao Tempo Atômico Internacional (TAI) nem à contagem precisa mantida pelas autoridades de temporização de precisão. Para finalidades comuns de software, essa discrepância — de cerca de 27 segundos acumulados até 2024 — é irrelevante.
Transbordamento inteiro em código legado. Mesmo que o sistema operacional hospedeiro utilize tempo de 64 bits, bibliotecas de terceiros, tipos de coluna em bancos de dados ou formatos de serialização podem armazenar timestamps como inteiros de 32 bits. Ao ler ou escrever em sistemas externos, verifique a largura de armazenamento quando a precisão em torno de 2038 ou além for relevante.
Perguntas frequentes (FAQ)
O que é um Unix timestamp?
Um Unix timestamp (também chamado de POSIX timestamp ou epoch time) é um número inteiro que representa a quantidade de segundos decorridos desde o epoch Unix: 1970-01-01 00:00:00 UTC. A escolha dessa data é uma convenção histórica do sistema operacional Unix original, desenvolvido nos Laboratórios Bell no fim dos anos 1960.
Por ser um número inteiro independente de fusos horários e convenções de calendário, o Unix timestamp é a forma padrão como a maioria dos sistemas computacionais armazena e transmite instantes de tempo. Para convertê-lo em uma data legível, é necessário definir o fuso horário a aplicar; esta calculadora utiliza sempre o Tempo Universal Coordenado (UTC).
Como saber se o meu timestamp está em segundos ou milissegundos?
Timestamps Unix padrão contam segundos inteiros. Um valor com 10 dígitos (por exemplo, 1.700.000.000) é quase certamente em segundos — o que corresponde a uma data em 2023. Um valor com 13 dígitos (por exemplo, 1.700.000.000.000) é quase certamente em milissegundos, como os produzidos por Date.now() e Date.getTime() do JavaScript, ou por muitas APIs REST e sistemas de log.
Como regra prática: se o número tiver dez dígitos, está em segundos; se tiver treze, está em milissegundos. Valores com onze ou doze dígitos ficam numa zona intermediária e podem representar microssegundos ou outra escala não padrão — verifique a documentação da fonte.
O que é o Problema do Ano 2038?
Muitos sistemas legados armazenam Unix timestamps como inteiros de 32 bits com sinal, que comportam valores entre −2.147.483.648 e 2.147.483.647. O valor máximo positivo corresponde a 2038-01-19 03:14:07 UTC. Após esse instante, o contador transborda para um número negativo muito grande, que esses sistemas interpretariam como uma data em 1901.
Sistemas modernos utilizam inteiros de 64 bits, capazes de representar datas centenas de bilhões de anos no futuro. O problema se restringe a sistemas embarcados legados, bancos de dados antigos e softwares que ainda não foram atualizados. A maioria dos sistemas operacionais e linguagens de programação amplamente usados já migrou para o tempo de 64 bits.