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 navegadorUm 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.
| Ambiente | Timestamp atual | Converter o timestamp para data e hora UTC |
|---|---|---|
| JavaScript | Math.floor(Date.now() / 1000) | new Date(timestamp * 1000).toISOString() |
| Python | int(time.time()) | datetime.fromtimestamp(timestamp, timezone.utc) |
| PHP | time() | (new DateTimeImmutable("@$timestamp"))->setTimezone(new DateTimeZone("UTC")) |
| Java | Instant.now().getEpochSecond() | Instant.ofEpochSecond(timestamp) |
| Go | time.Now().Unix() | time.Unix(timestamp, 0).UTC() |
| Ruby | Time.now.to_i | Time.at(timestamp).utc |
| PostgreSQL | SELECT EXTRACT(EPOCH FROM NOW())::bigint; | SELECT TO_TIMESTAMP(timestamp) AT TIME ZONE 'UTC'; |
| MySQL | SELECT UNIX_TIMESTAMP(); | SELECT FROM_UNIXTIME(timestamp); |
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.
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.
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.
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.
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.
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.
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).
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.
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 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.