🕐
← Voltar aos guias

Como Converter Timestamps Unix em Datas Legíveis por Humanos

· Tags: unix-timestamp, conversion, date-conversion, timezone, epoch-converter

Por que Converter Timestamps Unix?

Timestamps Unix são ideais para máquinas — um único inteiro é compacto, inequívoco e fácil de ordenar. Mas para humanos, 1785292800 não significa nada até ser traduzido em uma data e hora de calendário. Esteja você depurando um arquivo de log, analisando registros de banco de dados ou lendo uma resposta de API, saber como converter timestamps rapidamente é uma habilidade essencial.

Método 1: Usando Nosso Conversor Online de Timestamp Unix

O método mais rápido e confiável é usar uma ferramenta de conversão dedicada.

Nosso Conversor de Timestamp Unix aceita timestamps em segundos e milissegundos, detecta automaticamente a resolução e exibe o resultado em vários fusos horários simultaneamente. Você também pode ir na outra direção — inserir uma data legível por humanos e obter o timestamp Unix correspondente.

Essa abordagem é ideal quando você precisa de uma conversão rápida e pontual sem usar a linha de comando.

Método 2: Usando a Linha de Comando do Linux (comando date)

Se você tiver acesso a um terminal Linux ou macOS, o comando date é seu melhor amigo.

Converter um Timestamp em uma Data Legível por Humanos

# On GNU Linux (most distributions)
date -d @1785292800

# Specify a custom format
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# Output: 2026-07-19 00:00:00

# With timezone
TZ="America/New_York" date -d @1785292800
# Output: Sun Jul 19 00:00:00 EDT 2026

No macOS (date do BSD), a sintaxe difere ligeiramente:

# On macOS
date -r 1785292800

# With custom format
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"

Converter uma Data em um Timestamp Unix

# On GNU Linux
date -d "2026-07-19 00:00:00" +%s

# On macOS
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s

Método 3: Cálculo Manual

Embora raramente você precise fazer isso manualmente, entender a matemática desmistifica como o sistema funciona.

A Fórmula

seconds = (year - 1970) × 31536000 + (month offset) × 86400 + day × 86400 + hours × 3600 + minutes × 60 + seconds

A parte complicada é considerar os anos bissextos. Um ano é bissexto se for divisível por 4, exceto anos de século que não sejam divisíveis por 400.

Aproximações Mentais Rápidas

  • 86.400 segundos = 1 dia
  • 604.800 segundos = 1 semana
  • Aproximadamente 31.536.000 segundos = 1 ano comum
  • Aproximadamente 31.622.400 segundos = 1 ano bissexto

Para uma estimativa aproximada, você pode calcular timestamp / 86400 para obter o número de dias desde o epoch e, em seguida, somar esses dias a 1 de janeiro de 1970.

Método 4: Usando Linguagens de Programação

Toda linguagem de programação importante tem funções embutidas para conversão de timestamps. Aqui estão as mais comuns:

JavaScript (Navegador ou Node.js)

// Timestamp to date (JavaScript uses milliseconds)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// Output: 2026-07-19T00:00:00.000Z

// Date to timestamp
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// Output: 1785292800

Python

from datetime import datetime

# Timestamp to date
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# Output: 2026-07-19T00:00:00

# Timezone-aware (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# Output: 2026-07-19T00:00:00-04:00

# Date to timestamp
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)

PHP

<?php
// Timestamp to date
echo date("Y-m-d H:i:s", 1785292800);
// Output: 2026-07-19 00:00:00

// Date to timestamp
echo strtotime("2026-07-19 00:00:00");
// Output: 1785292800

Método 5: Usando Software de Planilhas

Google Sheets

Use a fórmula =DATE(1970,1,1) + A1 / 86400 onde A1 contém o timestamp. Formate a célula de resultado como data.

Microsoft Excel

=DATE(1970,1,1) + A1 / 86400

No Excel para Windows, você pode precisar de:

=(A1 / 86400) + DATE(1970,1,1)

Casos Extremos para Observar

Segundos vs Milissegundos

Este é o erro mais comum. Se você passar um valor em milissegundos (ex.: 1785292800000) para uma função que espera segundos, obterá uma data aproximadamente 56.000 anos no futuro.

Como detectar:

  • Se o número tiver 10 dígitos, provavelmente é em segundos
  • Se o número tiver 13 dígitos, provavelmente é em milissegundos
  • Alguns sistemas também usam microssegundos (16 dígitos) ou nanossegundos (19 dígitos)

Timestamps Negativos (Datas Anteriores a 1970)

Timestamps Unix podem representar datas anteriores ao epoch usando números negativos:

date -d @-126230400
# Output: Tue Dec 31 00:00:00 -1969

Nem todas as ferramentas de conversão lidam corretamente com timestamps negativos. Nosso conversor online lida.

Segundos Bissextos

O tempo Unix ignora segundos bissextos por design. Um timestamp Unix nunca mostrará :59:60, mesmo durante uma inserção de segundo bissexto. Isso significa que o timestamp diverge do tempo atômico por uma pequena (atualmente 27 segundos) mas crescente quantidade.

Resumo

| Método | Melhor Para | |--------|----------| | Conversor online (/linux-timestamp) | Conversões rápidas e pontuais | | Comando date | Usuários de terminal e scripts | | Cálculo manual | Entender como funciona | | Linguagens de programação | Automação e aplicativos | | Planilhas | Análise de dados |

Use nosso Conversor de Timestamp Unix para realizar conversões instantâneas e precisas com detecção automática de fuso horário.