O Que é Tempo Epoch (Tempo Unix)?
O tempo epoch, também chamado de tempo Unix ou timestamp Unix, é o número de segundos que se passaram desde 1º de janeiro de 1970, 00:00:00 UTC, um momento conhecido como Unix epoch (a era Unix). Por exemplo, 1700000000 corresponde a 14 de novembro de 2023, às 22:13:20 UTC.
Os computadores guardam o tempo assim porque um único número é fácil de comparar, ordenar e enviar entre sistemas, e ele representa o mesmo instante em qualquer lugar do mundo. Os fusos horários só entram em cena quando você o transforma em uma data para pessoas lerem. O tempo Unix ignora os segundos bissextos: todo dia conta como exatamente 86.400 segundos.

Segundos, Milissegundos, Microssegundos ou Nanossegundos?
Os timestamps vêm em precisões diferentes. O conversor detecta a unidade pela quantidade de dígitos, e você pode corrigi-la no menu de unidade:
O timestamp Unix clássico, usado pelo Linux, pelo PHP, pelo time.time() do Python (como float), pelas claims exp de JWT e pela maioria das APIs. Exemplo: 1700000000.
Usado pelo JavaScript (Date.now()), pelo Java e por muitos bancos de dados e logs. Exemplo: 1700000000000.
Usado pelo UnixMicro() do Go e por muitos logs e traces de alta resolução. Exemplo: 1700000000000000.
Usado pelo UnixNano() do Go, pelo InfluxDB e por sistemas de monitoramento. Exemplo: 1700000000000000000.
Advertisement
Como Converter um Timestamp Unix para Data
Digite-o na aba Timestamp para Data. Vírgulas, espaços e uma parte decimal (como 1700000000.5) são aceitos, e valores negativos dão datas anteriores a 1970.
O selo mostra se o número foi lido como segundos, milissegundos, microssegundos ou nanossegundos. Escolha a unidade você mesmo se a detecção errar.
Você recebe a data em UTC e no seu fuso horário, em ISO 8601 e RFC 2822, há quanto tempo foi e o mesmo momento nas quatro unidades.
Escolha qualquer fuso horário da lista para ver o mesmo instante lá, por exemplo para conferir quando um registro de log aconteceu para um colega no exterior.
Como Converter uma Data para Timestamp Unix
Abra a aba Data para Timestamp, escolha uma data e hora e selecione o fuso horário a que ela pertence. Você recebe o tempo epoch em segundos e milissegundos, além da forma ISO 8601 em UTC.
O mesmo painel mostra o primeiro e o último segundo daquele dia, mês e ano no fuso horário escolhido. Isso é útil em consultas de banco de dados como "todos os pedidos feitos em outubro no horário de Nova York", em que você precisa dos timestamps de início e fim do período.
Advertisement
Fusos Horários e Horário de Verão
Um timestamp Unix não tem fuso horário: ele sempre conta a partir da meia-noite UTC de 1º de janeiro de 1970. O mesmo timestamp apenas aparece como horários diferentes em lugares diferentes, como 22:13 em Londres e 03:43 da manhã seguinte na Índia para 1700000000.
É na conversão de uma data para timestamp que os fusos horários importam. Alguns horários acontecem duas vezes quando os relógios atrasam, e outros nunca acontecem quando os relógios adiantam. Na noite em que os relógios dos EUA adiantam, 02:30 não existe em Nova York. Esta ferramenta trata os dois casos como o Python faz: um horário que não existe avança pelo tamanho do salto, e um horário que acontece duas vezes usa a primeira ocorrência.
O Problema do Ano 2038
Sistemas mais antigos guardam o tempo Unix em um inteiro de 32 bits com sinal, cujo valor máximo é 2147483647: 19 de janeiro de 2038, às 03:14:07 UTC. Um segundo depois, o número estoura para um valor negativo e esses sistemas leem a data como 13 de dezembro de 1901.
A maioria dos sistemas operacionais e das linguagens modernas usa tempo de 64 bits e não é afetada, mas dispositivos embarcados, formatos de arquivo antigos, parte do código legado e o tipo de coluna TIMESTAMP do MySQL (que termina em 2038-01-19 03:14:07 UTC) ainda são. O conversor mostra um aviso para qualquer timestamp fora do intervalo de 32 bits, para que você identifique valores que podem quebrar softwares mais antigos.
Advertisement
Como Obter o Timestamp Unix Atual no Código
Toda linguagem e todo shell conseguem ler e converter tempo Unix:
Math.floor(Date.now() / 1000) // segundos
Date.now() // milissegundos
new Date(1700000000 * 1000).toISOString() // '2023-11-14T22:13:20.000Z'import time, datetime
int(time.time()) # segundos
datetime.datetime.fromtimestamp(1700000000, datetime.timezone.utc)
# 2023-11-14 22:13:20+00:00date +%s # segundos epoch atuais
date -u -d @1700000000 # Linux (GNU date)
date -u -r 1700000000 # macOS (BSD date)-- PostgreSQL
SELECT extract(epoch FROM now());
SELECT to_timestamp(1700000000);
-- MySQL
SELECT UNIX_TIMESTAMP();
SELECT FROM_UNIXTIME(1700000000);time(); // PHP
date('c', 1700000000);
time.Now().Unix() // Go
Instant.now().getEpochSecond() // Java=(A1/86400)+DATE(1970,1,1) // segundos epoch em A1 para uma data UTC
=(B1-DATE(1970,1,1))*86400 // data UTC em B1 para segundos epochTimestamps Unix Notáveis
0: 1º de janeiro de 1970, 00:00:00 UTC, o Unix epoch.1000000000: 9 de setembro de 2001, 01:46:40 UTC, o primeiro timestamp de 10 dígitos.1234567890: 13 de fevereiro de 2009, 23:31:30 UTC.1700000000: 14 de novembro de 2023, 22:13:20 UTC.1800000000: 15 de janeiro de 2027, 08:00:00 UTC.2000000000: 18 de maio de 2033, 03:33:20 UTC.2147483647: 19 de janeiro de 2038, 03:14:07 UTC, o limite de 32 bits.4294967295: 7 de fevereiro de 2106, 06:28:15 UTC, o limite de 32 bits sem sinal.
Advertisement
Mais Ferramentas para Desenvolvedores
Outras ferramentas grátis para desenvolvedores e administradores de sistemas, todas rodando no seu navegador:
UUIDs v4 aleatórios, v7 ordenados por tempo e GUIDs, em massa.
Converta texto, imagens e arquivos para Base64 e de volta.
Veja as datas de validade, os SANs e a chave de um certificado.
Sub-redes IPv4, faixas CIDR e quantidade de hosts.