O que é
Um timestamp Unix é o número de segundos desde 00:00:00 UTC de 1º de janeiro de 1970, a chamada época Unix. É o mesmo número no mundo inteiro no mesmo instante, por isso APIs, logs e bancos de dados o usam. Por exemplo, 1700000000 é 14 de novembro de 2023 às 22:13:20 UTC.
Segundos ou milissegundos?
Um timestamp em segundos tem hoje 10 dígitos. JavaScript, Java e muitas APIs usam milissegundos, que têm 13. Se uma data sair em 1970 ou milhares de anos no futuro, a unidade provavelmente está errada.
Converta online
Cole no Conversor de timestamp Unix. Ele detecta segundos ou milissegundos e mostra a data em UTC e no seu fuso horário.
Em código e planilhas
- JavaScript:
new Date(1700000000 * 1000) - Python:
datetime.fromtimestamp(1700000000, tz=timezone.utc) - Excel em português:
=A1/86400+DATA(1970;1;1)e formate a célula como data. O resultado fica em UTC. - Terminal do Mac ou Linux, hora atual:
date +%s
O problema do ano 2038
Sistemas que guardam o timestamp como número de 32 bits com sinal estouram em 19 de janeiro de 2038 às 03:14:07 UTC. Sistemas modernos usam 64 bits, que duram bilhões de anos.
Exemplos práticos
0é 1º de janeiro de 1970, 00:00:00 UTC.86400é exatamente um dia depois, 2 de janeiro de 1970.-86400é um dia antes, 31 de dezembro de 1969. Timestamps negativos são datas anteriores a 1970.2000000000é 18 de maio de 2033, 03:33:20 UTC.
Erros comuns
- Achar que o timestamp tem fuso horário. Não tem. 1700000000 é o mesmo instante em todo lugar; só a forma de exibir muda com o fuso.
- Gerar um timestamp a partir da hora local como se fosse UTC. O resultado fica deslocado pela diferença do seu fuso em relação ao UTC, muitas vezes exatamente algumas horas. Confira uma data conhecida depois de converter.
- Meses no JavaScript.
new Date(2026, 0, 15)é 15 de janeiro: os meses contam a partir de 0. - Segundos intercalares. O tempo Unix trata todo dia como exatamente 86.400 segundos e ignora os segundos intercalares, então não é uma contagem de cada segundo decorrido.