Conversor de timestamp Unix para data

Converta um timestamp Unix numa data e hora legíveis — ou qualquer data de volta para um timestamp Unix. Suporta segundos e milissegundos.

Compartilhe esta ferramenta

Incorpore no seu site

O que é um timestamp Unix?

Um timestamp Unix, também chamado de Unix time ou POSIX time, é o número de segundos decorridos desde 1970-01-01 00:00:00 UTC, conhecido como a época Unix. É um padrão amplamente usado em computação porque representa um ponto no tempo como um único número inteiro, o que torna o armazenamento, a comparação e operações aritméticas diretas.

JavaScript funciona internamente em milissegundos, então Date.now() retorna o timestamp Unix multiplicado por 1000. Muitas APIs, bancos de dados e sistemas backend usam segundos. Esta ferramenta aceita ambos os formatos e detecta automaticamente se você inseriu segundos ou milissegundos com base no tamanho do número.

Timestamps Unix notáveis

TimestampData (UTC)Nota
01970-01-01 00:00:00Época Unix
1.000.000.0002001-09-09 01:46:401 bilhão de segundos
2.000.000.0002033-05-18 03:33:202 bilhões de segundos
2.147.483.6472038-01-19 03:14:07Problema do ano 2038 (máx. 32-bit)

Por que 1970?

A época Unix de 1º de janeiro de 1970 foi escolhida por convenção e por limitações práticas. Unix foi desenvolvido entre o final dos anos 1960 e início dos anos 1970 nos Bell Labs. Os desenvolvedores precisavam de uma data de referência recente e redonda para sua representação de tempo. 1º de janeiro de 1970 era recente o bastante para ser prático e não tinha nenhum significado técnico especial — era simplesmente um ponto de referência conveniente.

Datas de época alternativas existem em outros sistemas: a época FILETIME do Windows é 1º de janeiro de 1601; o tempo GPS começou em 6 de janeiro de 1980; a época NTP é 1º de janeiro de 1900. Ao converter entre sistemas, conhecer a época de cada um é essencial.

Segundos vs milissegundos

O timestamp Unix original é em segundos. A maioria das linguagens server-side e sistemas (shell Unix, time.time() do Python, time() do PHP, maioria dos bancos de dados) usam segundos. Date.now() e new Date().getTime() do JavaScript retornam milissegundos. Essa diferença é uma fonte comum de bugs quando frontends JavaScript se comunicam com APIs backend.

Um timestamp Unix em segundos é atualmente um número de 10 dígitos (aproximadamente 1.700.000.000 em 2023). Um timestamp em milissegundos é um número de 13 dígitos. A calculadora detecta qual formato você inseriu com base no número de dígitos e converte automaticamente.

O problema do ano 2038

Sistemas que armazenam timestamps Unix como um inteiro com sinal de 32 bits só conseguem representar datas até 2.147.483.647 segundos após a época — o que corresponde a 03:14:07 UTC em 19 de janeiro de 2038. Depois disso, um inteiro com sinal de 32 bits faz overflow para um número negativo grande, representando uma data em 1901.

Isso às vezes é chamado de "problema Y2K38" ou Unix Millennium Bug. Sistemas modernos de 64 bits não são afetados, pois um inteiro com sinal de 64 bits consegue representar timestamps por aproximadamente 292 bilhões de anos. Porém, sistemas embarcados, bancos de dados legados e software antigo de 32 bits ainda podem ser vulneráveis. Muitos setores — incluindo telecomunicações, banking e sistemas de controle industrial — têm esforços contínuos de migração para lidar com isso.

Como obter o timestamp Unix atual

Linguagem / ambienteComando
JavaScriptMath.floor(Date.now() / 1000)
Pythonimport time; int(time.time())
PHPtime()
Bashdate +%s
SQL (PostgreSQL)EXTRACT(EPOCH FROM NOW())::int
SQL (MySQL)UNIX_TIMESTAMP()
Gotime.Now().Unix()
RustSystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()

Usos práticos

Desenvolvimento de APIs: APIs REST comumente usam timestamps Unix para campos created_at, updated_at e expiração de tokens. Um timestamp é independente de fuso horário e inequívoco — ao contrário de strings de datas formatadas, que dependem de localidade e convenções de formatação.

Expiração de tokens: JWT (JSON Web Tokens) usam timestamps Unix para as claims exp (expiração) e iat (emitido em). Um token expira quando o timestamp atual excede o valor de exp. Calcular tempos de expiração — "este token deve expirar em 24 horas" — requer adicionar 86.400 segundos ao timestamp atual.

TTL de cache: A expiração de cache é frequentemente definida como um timestamp Unix ou como um número de segundos a partir de agora. Debugar problemas de cache frequentemente requer converter um timestamp de expiração armazenado para uma data legível.

Análise de logs: Logs de servidor frequentemente incluem timestamps Unix. Convertê-los para datas legíveis é o primeiro passo para correlacionar entradas de log com eventos do mundo real.

Armazenamento em banco de dados: Armazenar timestamps como números inteiros em vez de strings formatadas evita bugs de conversão de fuso horário e simplifica ordenação, consultas de intervalo e operações aritméticas. Uma consulta por "todos os registros dos últimos 7 dias" se torna WHERE created_at > (NOW_UNIX - 604800).

Artigos relacionados