unixtimestamp.info

Timestamp Unix atual (hora epoch)

segundos desde 1 de janeiro de 1970 UTC — clique para copiar
ms – UTC – Local –

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

O resultado aparece aqui.

Data → Timestamp

O resultado aparece aqui.

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:

UnidadeDígitos (hoje)ExemploOrigem típica
segundos101758700800Ferramentas Unix, PHP, MySQL, Python time.time()
milissegundos131758700800000JavaScript Date.now(), Java
microssegundos161758700800000000Registos de alta resolução
nanossegundos191758700800000000000Go 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.

TimestampData (UTC)Porque importa
01970-01-01 00:00:00O próprio epoch Unix. Uma data em 1970 costuma indicar um valor em falta ou zero.
10000000002001-09-09 01:46:40Primeiro timestamp de 10 dígitos (o «billennium»).
12345678902009-02-13 23:31:30Dígitos consecutivos, celebrados por programadores em todo o mundo.
15000000002017-07-14 02:40:001,5 mil milhões de segundos.
17000000002023-11-14 22:13:201,7 mil milhões de segundos.
20000000002033-05-18 03:33:202 mil milhões de segundos.
21474836472038-01-19 03:14:07Valor 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.