Timestamp Unix atual (hora epoch)
Conversor de timestamp Unix
Converta a hora epoch numa data legível, ou uma data num timestamp Unix. Segundos e milissegundos são detetados automaticamente.
Timestamp → Data
Data → Timestamp
O que é um timestamp Unix?
Um timestamp Unix (também chamado hora epoch, hora POSIX ou tempo Unix) é o número de segundos decorridos desde as 00:00:00 UTC de 1 de janeiro de 1970 — um instante conhecido como epoch Unix. Cada dia conta exatamente 86 400 segundos e os segundos intercalares são ignorados.
Por ser um único número inteiro, sem fuso horário, sem horário de verão e sem ambiguidade de formato, é a forma padrão de os computadores guardarem e trocarem instantes. Bases de dados, ficheiros de registo, APIs e sistemas operativos usam-no internamente; a data legível só é gerada na apresentação, no fuso horário de quem a lê.
Tempo Unix em segundos ou milissegundos
O mesmo instante pode ser expresso com precisões diferentes. Normalmente, o número de dígitos indica qual:
| Unidade | Dígitos (hoje) | Exemplo | Origem típica |
|---|---|---|---|
| segundos | 10 | 1758700800 | Ferramentas Unix, PHP, MySQL, Python time.time() |
| milissegundos | 13 | 1758700800000 | JavaScript Date.now(), Java |
| microssegundos | 16 | 1758700800000000 | Registos de alta resolução |
| nanossegundos | 19 | 1758700800000000000 | Go UnixNano(), sistemas de tracing |
O problema do ano 2038
Os sistemas que guardam o tempo Unix num inteiro com sinal de 32 bits transbordam às 03:14:07 UTC de 19 de janeiro de 2038 (timestamp 2 147 483 647). Um segundo depois o contador passa a negativo, o que esses sistemas interpretam como dezembro de 1901. Os sistemas modernos de 64 bits não são afetados — um contador de 64 bits dura cerca de 292 mil milhões de anos —, mas dispositivos embebidos antigos, formatos de ficheiro legados e bases de dados com campos de 32 bits ainda exigem atenção.
Obter o timestamp Unix atual em código
Em segundos, salvo indicação em contrário.
# Shell date +%s # JavaScript (ms → s) Math.floor(Date.now() / 1000) # Python import time; int(time.time()) # Perl time # PHP time() # MySQL SELECT UNIX_TIMESTAMP(); # C# DateTimeOffset.UtcNow.ToUnixTimeSeconds() # Swift Int(Date().timeIntervalSince1970) # Kotlin / Java System.currentTimeMillis() / 1000
Converter um timestamp Unix numa data em código
# Shell (GNU/Linux) date -u -d @1700000000 # Shell (macOS/BSD) date -u -r 1700000000 # JavaScript (ms) new Date(1700000000 * 1000).toISOString() # Python from datetime import datetime, timezone datetime.fromtimestamp(1700000000, tz=timezone.utc) # Perl scalar gmtime(1700000000) # PHP gmdate('Y-m-d H:i:s', 1700000000) # MySQL SELECT FROM_UNIXTIME(1700000000); # C# DateTimeOffset.FromUnixTimeSeconds(1700000000).UtcDateTime # Swift Date(timeIntervalSince1970: 1700000000) # Kotlin / Java java.time.Instant.ofEpochSecond(1700000000)
Timestamps Unix notáveis
Números redondos e marcos que os programadores encontram em registos, dados de teste e relatórios de erros. Todas as datas em UTC.
| Timestamp | Data (UTC) | Porque importa |
|---|---|---|
| 0 | 1970-01-01 00:00:00 | O próprio epoch Unix. Uma data em 1970 costuma indicar um valor em falta ou zero. |
| 1000000000 | 2001-09-09 01:46:40 | Primeiro timestamp de 10 dígitos (o «billennium»). |
| 1234567890 | 2009-02-13 23:31:30 | Dígitos consecutivos, celebrados por programadores em todo o mundo. |
| 1500000000 | 2017-07-14 02:40:00 | 1,5 mil milhões de segundos. |
| 1700000000 | 2023-11-14 22:13:20 | 1,7 mil milhões de segundos. |
| 2000000000 | 2033-05-18 03:33:20 | 2 mil milhões de segundos. |
| 2147483647 | 2038-01-19 03:14:07 | Valor máximo de um inteiro com sinal de 32 bits — o problema do ano 2038. |
Como converter um timestamp Unix
De timestamp para data: cole o número no conversor acima. A unidade é detetada pelo comprimento — 10 dígitos são segundos, 13 são milissegundos — e o resultado aparece em UTC, no seu fuso horário local e como tempo relativo. Sem registo; nada sai do seu navegador.
De data para timestamp: escolha a data e a hora, indique se devem ser lidas como hora local ou UTC, e obtém o valor em segundos e milissegundos — pronto para consultas SQL, expiração de tokens ou parâmetros de API.
Uma verificação rápida ao depurar: se uma data nos seus dados aparece como janeiro de 1970, quase de certeza tratou segundos como milissegundos (ou recebeu 0/null). Se aparece dezenas de milhares de anos no futuro, fez o contrário.
Perguntas frequentes
Um timestamp Unix está em segundos ou milissegundos?
Ambos são comuns. Um valor de 10 dígitos está em segundos (ferramentas Unix, PHP, MySQL, Python); um de 13 dígitos está em milissegundos (JavaScript, Java). Divida por 1000 para passar de milissegundos a segundos.
O tempo Unix depende do fuso horário?
Não. O tempo Unix é sempre contado em UTC, por isso o mesmo instante tem o mesmo timestamp em todo o mundo. Os fusos horários só entram em jogo quando o timestamp é formatado como data legível.
Os timestamps Unix incluem segundos intercalares?
Não. Cada dia conta exatamente 86 400 segundos. Quando ocorre um segundo intercalar, os sistemas operativos repetem-no ou «diluem-no», para que o tempo Unix continue a ser um contador limpo e contínuo.
Um timestamp Unix pode ser negativo?
Sim. Valores negativos representam instantes anteriores a 1 de janeiro de 1970. Por exemplo, -86400 é 31 de dezembro de 1969, 00:00 UTC. Nem todos os sistemas lidam bem com timestamps negativos, por isso teste antes de confiar neles.
Como obtenho o timestamp Unix atual?
Execute date +%s num terminal Linux ou macOS, chame Math.floor(Date.now() / 1000) em JavaScript ou int(time.time()) em Python. Há exemplos para mais linguagens acima.
Qual é o timestamp de «agora»?
O contador ao vivo no topo desta página — atualiza-se a cada segundo e copia-se com um clique.
Mais ferramentas gratuitas para programadores
A mesma ideia: rápidas, gratuitas e tudo corre no seu navegador.