Conversor de timestamps Unix
Converta timestamps Unix em segundos ou milissegundos em datas, ou uma data em tempo Unix. Veja a hora UTC e a hora local em conjunto.
O que é um timestamp Unix
Um timestamp Unix é o número de segundos decorridos desde as 00:00:00 UTC de 1 de janeiro de 1970, um instante conhecido como a época Unix. O número não contém fuso horário: num dado instante é o mesmo em qualquer ponto da Terra. É isso que o torna prático para registos, bases de dados e API, que guardam um único número e deixam a apresentação em hora local a cargo de cada leitor. O timestamp 1704067200, por exemplo, é a meia-noite UTC com que começa o dia 1 de janeiro de 2024.
Segundos ou milissegundos?
Os timestamps de datas atuais têm 10 dígitos em segundos e 13 em milissegundos. Date.now() em JavaScript e System.currentTimeMillis() em Java devolvem milissegundos; time() em PHP, o comando date +%s e a maioria das bases de dados trabalham em segundos. Trocar os dois é o erro mais comum com timestamps. Um valor em milissegundos lido como segundos vai parar dezenas de milhares de anos ao futuro, e um valor em segundos lido como milissegundos vai parar a janeiro de 1970. Por isso, este conversor pede-lhe que escolha a unidade em vez de a adivinhar pelo comprimento do número.
Segundos intercalares, números negativos e o ano 2038
O tempo Unix trata cada dia como tendo exatamente 86 400 segundos. Os 27 segundos intercalares acrescentados a UTC entre 1972 e 2016 não são contados, pelo que um timestamp é uma etiqueta para um momento do calendário e não uma contagem exata dos segundos decorridos. Os instantes anteriores a 1970 são negativos: -86400 é 31 de dezembro de 1969. Os sistemas que guardam o valor como inteiro de 32 bits com sinal esgotam-se às 03:14:07 UTC de 19 de janeiro de 2038; os de 64 bits não têm esse limite. O limite de 2038 explica o que é afetado.
Timestamps de referência
| Timestamp (segundos) | Data e hora (UTC) | O que assinala |
|---|---|---|
0 | 1970-01-01 00:00:00 | A época Unix, onde começa a contagem |
1000000000 | 2001-09-09 01:46:40 | Mil milhões de segundos, o primeiro valor com 10 dígitos |
1234567890 | 2009-02-13 23:31:30 | Os algarismos de 1 a 9 e o 0 por ordem, celebrados na altura pelos programadores |
2000000000 | 2033-05-18 03:33:20 | Dois mil milhões de segundos |
2147483647 | 2038-01-19 03:14:07 | O maior valor de um inteiro de 32 bits com sinal |
Obter o timestamp atual em segundos
| JavaScript | Math.floor(Date.now() / 1000) |
|---|---|
| Python | int(time.time()) |
| PHP | time() |
| Bash | date +%s |
| PostgreSQL | SELECT EXTRACT(EPOCH FROM now())::bigint |
| MySQL | SELECT UNIX_TIMESTAMP() |
Perguntas e respostas
Um timestamp Unix está em UTC?
É contado a partir de um instante definido em UTC, e o número em si não tem fuso horário. Para o ler, escolhe-se um fuso para a apresentação. O conversor mostra o resultado em UTC e na hora local do seu dispositivo, lado a lado.
Porque é que o meu timestamp dá uma data em 1970?
Ou o valor está em segundos e foi lido como milissegundos, ou é zero ou está vazio onde se esperava uma hora real. Mude a unidade para segundos e converta de novo. Uma data muito distante no futuro indica o erro contrário.
O que significa o Z no fim do resultado?
O resultado usa o formato ISO 8601, por exemplo 2024-01-01T00:00:00.000Z. O T separa a data da hora, e o Z indica que a hora está em UTC. Uma data não é um instante explica porque é que essa marca importa.
Que intervalo de datas pode ser convertido?
Timestamps até 100 milhões de dias antes ou depois da época, que é o limite das datas em JavaScript. Ao converter uma data em timestamp, o campo de data aceita os anos de 0001 a 9999.
Os cálculos são feitos no seu navegador. Não precisa de conta e os dados introduzidos não são enviados para o nosso servidor. Saiba como funcionam os nossos relógios.