Timestamp Unix em data
Timestamp Unix — ou epoch — é a contagem de segundos desde 1º de janeiro de 1970 em UTC: é assim que bancos e APIs guardam datas. Cole um número e veja a data legível, ou faça o caminho contrário, com o fuso que você escolher. Tudo no navegador, na hora.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Por que os computadores contam a partir de 1970
Guardar datas como um único número resolve um monte de dor: sem formato ambíguo (14/07 ou 07/14?), sem fuso embutido, ordenável e comparável com aritmética simples. O marco zero — 1º de janeiro de 1970, meia-noite UTC — é convenção herdada do Unix e adotada por praticamente tudo: bancos de dados, APIs, logs, JWTs. O número cresce um a cada segundo, igual no mundo inteiro; a conversão para hora local é responsabilidade de quem exibe.
Segundos ou milissegundos: o erro dos três zeros
Um timestamp em segundos tem hoje 10 dígitos; em milissegundos, 13. Confundir os dois é o erro mais comum do formato: interpretar milissegundos como segundos joga a data para dezenas de milhares de anos no futuro; o inverso devolve algum dia de janeiro de 1970. Se a data convertida sair absurda, conte os dígitos antes de desconfiar dos dados — JavaScript, por exemplo, trabalha em milissegundos, enquanto APIs e bancos costumam usar segundos.
Do número para o horário de Brasília — e de volta
O timestamp é sempre UTC; a hora de exibição depende do fuso. O mesmo 1770000000 é uma hora em Londres e outra em São Paulo — três horas antes. Ao converter uma data escolhida para timestamp, o caminho inverso importa igual: meia-noite de 15/08 em Brasília e em UTC são números diferentes. Escolha o fuso explicitamente nas duas direções e o clássico relatório com datas deslocadas em 3 horas desaparece.
Conversão em volume, dentro do fluxo
Exportou um relatório com uma coluna de timestamps? Precisa carimbar datas legíveis num painel? Via API, a conversão processa cada valor por US$ 0,002 a chamada, com fuso configurável — o script varre a planilha e devolve as datas prontas. É o tipo de conversão trivial de escrever e fácil de errar; delegar elimina o risco dos três zeros e do fuso esquecido. Para consultas do dia a dia, a página resolve grátis, sem limite e sem cadastro.
Casos de uso
Ler o created_at de uma API
O JSON diz que created_at é 1769980800 e o dev precisa saber se o registro é de hoje. Cola o número, escolhe Brasília e tem a resposta em dois segundos — sem abrir o console.
Conferir a expiração de um token
A claim exp de um JWT traz um timestamp. Convertendo, o suporte descobre que o token do cliente expirou de madrugada — e que o bug não era no login, era na renovação.
Planilha de eventos exportada do sistema
O export mensal vem com timestamps na coluna de data. Antes de mandar para a contabilidade, a analista converte os valores em datas legíveis no fuso certo, e o relatório chega sem números malucos.
Perguntas frequentes
Meu timestamp convertido deu uma data absurda. O que houve?
Conte os dígitos: 10 são segundos, 13 são milissegundos. Interpretar um pelo outro joga a data para um futuro distante ou para janeiro de 1970. Divida ou multiplique por 1.000 e converta de novo.
Por que a data convertida está 3 horas deslocada?
Não está errada: o timestamp é UTC por definição, e Brasília fica três horas atrás. Escolha o fuso de exibição correto na conversão — o número em si não carrega fuso nenhum.
O que acontece em 2038?
Sistemas antigos que guardam o timestamp em 32 bits estouram o limite em janeiro de 2038. Software moderno usa 64 bits e não tem o problema. Se você mantém sistema legado ou embarcado muito antigo, é uma migração para o radar.
Timestamp negativo existe?
Existe: representa datas anteriores a 1970. Nem todo sistema aceita, mas o formato prevê — útil para datas históricas em bancos de dados.
Esse conversor envia meus dados para algum servidor?
Não — o cálculo é local, no navegador. Vale para consultas avulsas e para quando os timestamps vêm de dados internos que não devem circular.
E para converter uma coluna inteira?
Via API: US$ 0,002 por chamada, preço publicado, sem cadastro nem mensalidade. O caminho para tratar exports e relatórios inteiros em vez de valor por valor.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/epoch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/epoch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/epoch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/epoch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/epoch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"items": [
"valor-1",
"valor-2"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.epoch",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |