Resumo rapido: Unix timestamp conta segundos desde 1 de janeiro de 1970 UTC. Numero de 10 digitos = segundos; 13 digitos = milissegundos. Esse formato vive em log, banco, API REST e cookie de sessao.
Conversor timestamp: por que sistemas usam segundos desde 1970 e como ler isso
Quando voce inspeciona um log de servidor ou uma resposta JSON de API, frequentemente encontra um numero gigante onde deveria haver uma data, algo como 1715000000. Esse numero e um Unix timestamp, tambem chamado de epoch time. Representa quantos segundos passaram desde a meia-noite de 1 de janeiro de 1970 em UTC.
Esse padrao nasceu com o sistema operacional Unix nos anos 1970 e se espalhou por toda a computacao moderna. E o jeito mais simples, compacto e independente de fuso horario para registrar momento exato.
Segundos versus milissegundos
O Unix timestamp original conta em segundos. Linguagens como C, Python, PHP e Go usam segundos por padrao. JavaScript, Java e ambientes web modernos usam milissegundos. A diferenca pratica e o tamanho do numero: timestamp em segundos tem 10 digitos hoje, em milissegundos tem 13 digitos.
Confundir um pelo outro gera bug classico: uma data que aparece em 1970 (multiplicou em vez de dividir) ou um data lah no ano 50000 e poucos (interpretou milissegundo como segundo).
Por que UTC e nao horario local
Timestamp e sempre referenciado a UTC. Isso elimina ambiguidade de fuso horario, horario de verao e diferenca regional. Quem precisa exibir para usuario converte para o fuso local apenas na camada de apresentacao. No banco de dados, no log e na API, o valor permanece em UTC.
Brasil esta em UTC-3 (horario de Brasilia, sem horario de verao desde 2019). Para converter timestamp UTC para horario de Brasilia, subtraia 3 horas. A ferramenta acima ja faz isso automaticamente.
| Evento | Timestamp | Data UTC |
|---|---|---|
| Epoch (inicio) | 0 | 1970-01-01 00:00:00 |
| Y2K | 946684800 | 2000-01-01 00:00:00 |
| Marco do bilhao | 1000000000 | 2001-09-09 01:46:40 |
| Limite de 32 bits assinado | 2147483647 | 2038-01-19 03:14:07 |
O bug Y2038
Sistemas antigos que armazenam timestamp em inteiro de 32 bits com sinal tem capacidade maxima de 2.147.483.647 segundos. Isso corresponde a 19 de janeiro de 2038, as 03:14:07 UTC. Apos esse momento, o contador estoura e volta a numero negativo, causando comportamento errado em sistemas que dependem da data.
Sistemas modernos usam inteiro de 64 bits, que estende o limite por bilhoes de anos. Mas dispositivos embarcados, firmware antigo e sistemas legados ainda podem ser afetados. E o equivalente moderno do Y2K.
Atalho para identificar a unidade
Em 2026, timestamp em segundos tem 10 digitos. Em milissegundos, tem 13. Se voce ve 16 digitos, costuma ser microssegundos.
ISO 8601: o formato padrao para data e hora em texto
Enquanto Unix timestamp e compacto e amigavel a maquina, ISO 8601 e o formato textual padrao para data e hora legivel e nao ambigua. O exemplo 2026-05-13T10:30:00-03:00 indica: 13 de maio de 2026, as 10h30 do horario de Brasilia (UTC-3). O "T" separa data de hora, e o sufixo "-03:00" indica o deslocamento do fuso em relacao a UTC. Quando o sufixo e "Z", significa UTC puro (Zulu time).
JSON moderno (REST, GraphQL), logs estruturados, banco de dados PostgreSQL, JavaScript Date.toISOString(): todos preferem ISO 8601 para campo de data. Ele resolve a ambiguidade do formato dd/mm/aaaa versus mm/dd/aaaa que confunde usuario brasileiro e americano.
Fusos brasileiros e o fim do horario de verao
O Brasil usa principalmente America/Sao_Paulo como identificador de fuso (formato IANA tz database), correspondente a UTC-3. Esse identificador cobre a maior parte do territorio nacional. Outros fusos brasileiros sao:
- America/Manaus (UTC-4) para Amazonas e Roraima
- America/Rio_Branco (UTC-5) para Acre
- America/Noronha (UTC-2) para o arquipelago de Fernando de Noronha
Ate 2018, o Brasil aplicava horario de verao (BRST UTC-2) na regiao Sudeste e Sul. O decreto 9.772 de abril de 2019 aboliu definitivamente o horario de verao, e desde entao Sao Paulo, Rio e demais capitais permanecem em UTC-3 o ano inteiro. Bibliotecas de data com tz database atualizada apos 2019 ja refletem essa mudanca.
Casos de uso de Unix timestamp
- Logs de servidor: nginx, Apache e syslog gravam timestamp em segundos UTC para alinhar registros de maquinas em fusos diferentes.
- APIs REST e GraphQL: campos como
created_ateupdated_atchegam frequentemente como timestamp inteiro, especialmente em API de empresa orientada a eficiencia (Stripe, Twitter/X, Discord). - Bancos de dados: PostgreSQL
timestamp with time zoneinternamente armazena em UTC. MySQLTIMESTAMPtambem. SQLite costuma usar inteiro Unix. - Transacoes financeiras e auditoria: blockchain, log de pagamento e trilha de auditoria exigem timestamp imutavel em UTC para correlacao internacional.
- JWT tokens: claims
iat(issued at) eexp(expiration) sempre em Unix timestamp.
Exemplos historicos de Unix timestamp
| Timestamp | Data UTC | Data Brasilia | Contexto |
|---|---|---|---|
| 0 | 1970-01-01 00:00:00 | 31/12/1969 21:00:00 | Epoch (inicio Unix) |
| 1000000000 | 2001-09-09 01:46:40 | 08/09/2001 22:46:40 | "Bilhao" Unix |
| 1234567890 | 2009-02-13 23:31:30 | 13/02/2009 20:31:30 | Marco simbolico |
| 1577836800 | 2020-01-01 00:00:00 | 31/12/2019 21:00:00 | Inicio de 2020 UTC |
| 2147483647 | 2038-01-19 03:14:07 | 19/01/2038 00:14:07 | Limite signed 32 bits (Y2038) |
Conversao entre formatos: o trio essencial
No dia a dia, voce alterna entre tres representacoes do mesmo instante:
- Unix (1747140000): compacto, neutro, ideal para banco e API.
- ISO 8601 (2026-05-13T10:00:00-03:00): legivel, nao ambiguo, ideal para log textual e JSON.
- Data brasileira (13/05/2026 10:00:00): formato de apresentacao para usuario final no Brasil.
A ferramenta acima faz qualquer caminho entre os tres. Em codigo, lembre que toda conversao deve passar por UTC internamente e so virar fuso local na camada de exibicao, evitando bug classico de "uma hora a menos" em virada de dia.
Para entender como formatos como ISO 8601 sao publicados oficialmente, consulte o que sao RFCs e padroes de internet. A RFC 3339 e o subset do ISO 8601 usado em internet.
Timestamp Unix: Perguntas Frequentes
É a contagem de segundos desde 1 de janeiro de 1970 às 00h UTC, usada como referência universal de tempo em sistemas computacionais.
Sistemas Unix tradicionais usam segundos. Linguagens como JavaScript trabalham em milissegundos. O conversor reconhece os dois formatos automaticamente.
Por padrão exibimos em America/Sao_Paulo, com sigla BRT no horário padrão e BRST em períodos de horário de verão, quando aplicável.
O horário de verão foi suspenso por decreto presidencial em 2019, mas o conversor mantém suporte caso seja reativado em alguma região no futuro.
Logs em timestamp Unix evitam ambiguidade de fuso, ordenam eventos de forma consistente e facilitam análise em ferramentas como Elasticsearch e BigQuery.
Sim. O conversor aceita timestamps negativos, que representam datas anteriores ao epoch Unix, embora seja raro em aplicações modernas.