Curious TechieDev Toolbox
Todos os Guias/Tempo & Epoch8 min read

O que é Unix Time (Epoch)?

Por que sistemas contam segundos a partir de 1º de janeiro de 1970, timestamps de 32 vs 64 bits e o problema do ano 2038.

Principais Conclusões
  • O Unix time representa os segundos decorridos desde 00:00:00 UTC de 1º de janeiro de 1970 (o Unix Epoch).
  • Oferece um número inteiro independente de fusos horários, ideal para bancos de dados e logs.
  • O Bug do Ano 2038 (Y2038) fará inteiros de 32 bits transbordarem; sistemas modernos utilizam inteiros de 64 bits.
  • O tempo Unix ignora segundos bissextos, ajustando o relógio em inserções astronômicas oficiais.

Os computadores necessitam de um formato numérico inequívoco e monotonicamente crescente para ordenar cronologicamente eventos entre servidores espalhados pelo mundo. Esse padrão fundamental é o Unix Epoch Time.

1. O que é a Unix Epoch?

A época Unix é definida como 00:00:00 Tempo Universal Coordenado (UTC) de quinta-feira, 1º de janeiro de 1970. Cada segundo decorrido soma 1 a este contador inteiro.

2. Segundos (10 dígitos) vs Milissegundos (13 dígitos)

Kernels de sistemas operacionais (Linux, POSIX) medem o tempo em segundos (ex.: 1787610000). Runtimes como JavaScript medem em milissegundos (ex.: 1787610000000). Multiplicar ou dividir por 1.000 conecta os dois formatos.

3. Fusos Horários e Formato ISO 8601

Um timestamp de época não possui viés de fuso horário — ele marca um instante universal absoluto. A exibição local só é calculada no momento da apresentação utilizando o padrão ISO 8601 (YYYY-MM-DDTHH:mm:ssZ).

4. O Problema do Ano 2038 (Y2038) Explicado

Sistemas que armazenam timestamps Unix em inteiros com sinal de 32 bits sofrerão overflow em 19 de janeiro de 2038 às 03:14:07 UTC, voltando a valores negativos (1901). As arquiteturas modernas de 64 bits resolvem isso definitivamente.