tomai
Entrar

Timestamps Unix: as quatro armadilhas que quebram suas datas

Um timestamp Unix é só uma contagem de segundos desde 1970-01-01 UTC. Simples — e ainda assim causa mais bugs de datas que qualquer outro formato. Quatro armadilhas explicam a maioria.

1. Segundos vs milissegundos

Date.now() em JavaScript devolve milissegundos; o tempo Unix clássico e a maioria dos logs usam segundos. Um número de 10 dígitos é segundos, de 13 é milissegundos. Misturá-los transforma 2026 numa data do ano 53.000 — ou de 1970.

2. UTC vs hora local

O timestamp não tem fuso — é o mesmo instante em todo lugar. Os bugs aparecem quando o código converte com o fuso do servidor em vez do do usuário, ou quando uma string como 2026-09-01 08:00 é analisada sem dizer a que fuso pertence.

3. Saltos de horário de verão

Fusos com horário de verão pulam uma hora duas vezes por ano. Uma reunião salva como 09:00 local no verão e no inverno são dois instantes UTC diferentes; guardar UTC e converter só na exibição elimina toda essa classe de bugs.

4. Parsing dependente de locale

03/04/2026 significa 4 de março num país e 3 de abril noutro. Analisar datas de texto exige formato explícito — nunca adivinhe.

Regras práticas: guardar UTC, converter só ao exibir, rotular sempre os formatos. Para inspecionar um timestamp ou data: o conversor de timestamps ou relógios mundiais lado a lado — ambos rodam no navegador.