Como Converter Timestamps Unix em Datas Legíveis por Humanos
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.