Como converter o tempo epoch em uma data legível

Um guia prático para converter timestamps Unix em datas legíveis nas linguagens de programação populares, com ferramentas online e exemplos cientes de fuso.

O que é o tempo epoch?

O tempo epoch (também chamado de tempo Unix ou tempo POSIX) é o número de segundos decorridos desde as 00:00:00 UTC de 1 de janeiro de 1970. É o padrão universal para representar instantes na computação. Praticamente toda linguagem e sistema operacional o suporta nativamente, tornando-o o formato mais confiável para armazenar e trocar timestamps entre sistemas.

Passo 1 — Identifique o formato do seu timestamp

Antes de converter, determine se o seu timestamp está em segundos ou milissegundos:

  • 10 dígitos (ex.: 1700000000) → segundos desde o epoch Unix
  • 13 dígitos (ex.: 1700000000000) → milissegundos desde o epoch Unix
  • Na dúvida, divida por 1000 e verifique se o ano parece razoável
  • Você também pode colar o timestamp no conversor acima, que o detectará automaticamente

Converter epoch em data em JavaScript

O construtor Date do JavaScript aceita milissegundos. Se o seu timestamp estiver em segundos, multiplique primeiro por 1000.

  • new Date(1700000000 * 1000).toISOString() → '2023-11-15T06:13:20.000Z'
  • new Date(1700000000 * 1000).toUTCString() → 'Wed, 15 Nov 2023 06:13:20 GMT'
  • new Date(1700000000 * 1000).toLocaleString('en-US', { timeZone: 'America/New_York' })
  • new Date(1700000000000).getTime() → 1700000000000 (milliseconds back)

Converter epoch em data em Python

O módulo datetime do Python oferece fromtimestamp() para hora local e utcfromtimestamp() para UTC. Para tratamento explícito de fuso, use o parâmetro timezone.utc.

  • datetime.datetime.fromtimestamp(1700000000) → local timezone
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc) → UTC (Python 3.2+)
  • datetime.datetime.fromtimestamp(1700000000).strftime('%Y-%m-%d %H:%M:%S') → formatted string
  • datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc).isoformat() → ISO 8601

Converter epoch em data em PHP

As funções date() e a classe DateTime do PHP suportam timestamps Unix diretamente.

  • date('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (server's local timezone)
  • gmdate('Y-m-d H:i:s', 1700000000) → '2023-11-15 06:13:20' (always UTC)
  • $dt = new DateTime(); $dt->setTimestamp(1700000000); $dt->format('c') → ISO 8601

Converter epoch em data em Go

O pacote time do Go converte timestamps Unix com time.Unix(seconds, nanoseconds).

  • time.Unix(1700000000, 0) → time.Time in local timezone
  • time.Unix(1700000000, 0).UTC() → force UTC
  • time.Unix(1700000000, 0).Format(time.RFC3339) → '2023-11-15T06:13:20Z'
  • time.Unix(1700000000, 0).Format('2006-01-02 15:04:05') → custom layout

Erros comuns ao converter o tempo epoch

Os erros mais frequentes ao trabalhar com timestamps Unix:

  • Esquecer de multiplicar os segundos por 1000 em JavaScript — new Date(1700000000) dá o ano 1970, não 2023
  • Usar milissegundos do JavaScript diretamente como segundos em uma linguagem de servidor
  • Não especificar um fuso e depender do fuso do servidor, que varia entre ambientes
  • Armazenar timestamps como strings em vez de inteiros, o que quebra comparações e aritmética numéricas

FAQ de epoch para data

Como converto o tempo epoch em uma data?
Identifique se o valor está em segundos (10 dígitos) ou milissegundos (13 dígitos) e converta com a API de datas da sua linguagem — new Date(seconds * 1000) em JavaScript, datetime.fromtimestamp(seconds, tz=timezone.utc) em Python, ou cole no conversor acima.
Por que meu timestamp epoch converte para 1970?
Você passou um valor em segundos para uma função que espera milissegundos, quase sempre o new Date() do JavaScript. Multiplique primeiro o valor em segundos de 10 dígitos por 1000.
Devo converter o tempo epoch para UTC ou hora local?
Use UTC para logs, APIs e comparações entre servidores, e converta para o fuso local do usuário apenas para exibição. O valor epoch é neutro em relação ao fuso.