Pular para o conteúdo

Converter timestamp Unix e data local

Transforme segundos desde a época Unix em data e hora ou informe uma data local para obter o timestamp. O relógio e as conversões seguem o fuso horário do navegador.

Funciona localmente no seu navegador
Conversor de timestamp Unix
Timestamp Unix atual
Horário local do navegador

Timestamp para data e hora

Timestamp Unix
Horário local do navegador

Data e hora para timestamp

Horário local do navegador
Timestamp Unix

Referência de conversão de timestamp Unix

Um timestamp Unix conta os segundos decorridos desde 1970-01-01 00:00:00 UTC. Esta página interpreta a data e a hora informadas no fuso horário local do navegador.

Armazene timestamps em UTC. Aplique um fuso horário IANA com suas regras de horário de verão apenas ao exibir o valor para o usuário.

Exemplos de timestamp Unix por ambiente
AmbienteTimestamp atualConverter o timestamp para data e hora UTC
JavaScriptMath.floor(Date.now() / 1000)new Date(timestamp * 1000).toISOString()
Pythonint(time.time())datetime.fromtimestamp(timestamp, timezone.utc)
PHPtime()(new DateTimeImmutable("@$timestamp"))->setTimezone(new DateTimeZone("UTC"))
JavaInstant.now().getEpochSecond()Instant.ofEpochSecond(timestamp)
Gotime.Now().Unix()time.Unix(timestamp, 0).UTC()
RubyTime.now.to_iTime.at(timestamp).utc
PostgreSQLSELECT EXTRACT(EPOCH FROM NOW())::bigint;SELECT TO_TIMESTAMP(timestamp) AT TIME ZONE 'UTC';
MySQLSELECT UNIX_TIMESTAMP();SELECT FROM_UNIXTIME(timestamp);

Como converter timestamps Unix

Esta página converte segundos desde a época Unix em data e hora do seu fuso horário e converte uma data local de volta para timestamp. Um relógio ao vivo mostra o valor atual e pode ser parado para congelar uma leitura.

Todas as conversões usam o fuso horário informado pelo navegador, então o resultado bate com o relógio da sua máquina e não com UTC. A conversão roda dentro da página: nada do que você digita é enviado a um servidor.

  1. Leia o timestamp atual no relógio ao vivo ou clique em Parar para congelá-lo no valor que quiser guardar.
  2. Cole um timestamp no campo «Timestamp Unix» e clique em Converter para data para ver a data e hora local correspondente.
  3. Digite uma data local no formato YYYY-MM-DD HH:mm:ss e clique em Converter para timestamp para obter os segundos.
  4. Clique em Atualizar para reiniciar o relógio e copie o valor que precisar para a sua consulta, log ou script.
  5. Se o valor tiver 13 dígitos, provavelmente está em milissegundos: divida por 1000 antes de converter.

A hora Unix em detalhes

Como a época funciona de fato

A hora Unix conta os segundos decorridos desde 1970-01-01T00:00:00 UTC e ignora os segundos intercalares, então é um inteiro simples e não uma estrutura de calendário. Ela é sempre definida em UTC: por isso o mesmo valor impresso em dois fusos mostra relógios diferentes, mas um único instante.

Como os segundos intercalares não entram na conta, a hora Unix não é uma medida exata de segundos físicos, mas é consistente o bastante para que sistemas operacionais, bancos de dados e linguagens a usem como formato padrão de intercâmbio. Daí os nomes epoch time e POSIX time.

Segundos, milissegundos e microssegundos

O valor clássico está em segundos e tem dez dígitos entre 2001 e 2286. JavaScript e Java usam milissegundos, com treze dígitos, e alguns sistemas guardam microssegundos ou nanossegundos, com dezesseis ou dezenove. Um valor que parece do ano 50000 quase sempre são milissegundos lidos como segundos.

Ao enviar um timestamp para uma API, confira a unidade na documentação e fique atento ao desencontro clássico: o cliente manda milissegundos e o servidor guarda segundos. O sintoma visível é uma data décadas no futuro, e esta página mostra isso na hora.

Fusos horários, horário de verão e o problema de 2038

Um timestamp não tem fuso horário; uma data tem. Dois servidores que gravam meia-noite no horário local gravam timestamps diferentes, por isso o certo é guardar o instante e converter só na exibição. As mudanças de horário tornam a conversão inversa ambígua: um horário local pode ocorrer duas vezes (aqui ele é resolvido com o primeiro deslocamento) ou não existir (aqui ele é recusado).

Sistemas que guardam a hora Unix em um inteiro com sinal de 32 bits estouram em janeiro de 2038, quando o contador passa de 2 147 483 647. Plataformas de 64 bits não são afetadas, mas vale revisar sistemas embarcados e formatos antigos que ainda usam campos de 32 bits.

Dúvidas sobre a hora Unix

Por que a hora convertida fica algumas horas errada?

A conversão usa o fuso horário local do navegador, enquanto seu servidor, log ou banco de dados provavelmente grava em UTC. Os dois lados mostram o mesmo instante; só o deslocamento muda. Compare os timestamps, não os relógios, para confirmar.

Por que meu timestamp tem treze dígitos?

Porque está em milissegundos: JavaScript e Java usam essa unidade nativamente. Esta página espera segundos, então divida por 1000 antes de converter; sem isso, o valor é lido como um ano muito distante.

Como obtenho o timestamp atual no código?

Em JavaScript, Math.floor(Date.now() / 1000); em PHP, time(); em Python, int(time.time()); em SQL, a função do seu motor (UNIX_TIMESTAMP() no MySQL, strftime('%s','now') no SQLite ou PostgreSQL).

O que é o problema de 2038?

Sistemas que armazenam a hora Unix em um inteiro com sinal de 32 bits estouram em 2038-01-19 às 03:14:08 UTC, quando o contador passa de 2 147 483 647. Plataformas de 64 bits não são afetadas, mas sistemas embarcados e formatos com campos de 32 bits são.

A hora Unix conta segundos bissextos?

Não. Ela conta 86 400 segundos por dia e ignora os segundos intercalares que o UTC recebe de tempos em tempos, então não é uma contagem exata de segundos físicos, mas é o formato de intercâmbio padrão entre sistemas.

Quando é melhor usar uma data ISO 8601?

Quando o valor precisa ser legível ou carregar o próprio deslocamento, por exemplo em um JSON ou log: 2023-11-15T06:13:20+08:00 não deixa dúvida sobre o fuso. Para aritmética, comparações e armazenamento, o timestamp é mais simples.

Ferramentas recentes: