BrowserTools
Publicidade
Início / Conversores / Conversor de timestamps Unix

Conversor de timestamps Unix

Converte entre timestamps Unix e datas legíveis em qualquer fuso horário, com precisão de milissegundos.

A carregar Conversor de timestamps Unix… Se nada acontecer, ativa o JavaScript.

O timestamp Unix é um único número inteiro que conta os segundos decorridos desde 1 de janeiro de 1970, 00:00:00 UTC, um momento conhecido como época Unix (Unix Epoch). Este sistema foi estabelecido pelos primeiros programadores de Unix nos Bell Labs porque precisavam de uma forma compacta e neutra em relação ao fuso horário de representar instantes no tempo entre máquinas ligadas em rede. A escolha de 1970 foi em grande parte prática: era um ano recente e redondo que ficava confortavelmente dentro do intervalo dos inteiros de 32 bits, e os primeiros sistemas Unix estavam a ser desenvolvidos nessa altura. Hoje, o timestamp Unix é a linguagem universal do tempo para praticamente todos os sistemas operativos, bases de dados, API e linguagens de programação do planeta.

Exemplos

Entrada 1700000000
Saída 2023-11-14 22:13:20 UTC

Segundos da época Unix para uma data UTC legível.

Entrada 2024-01-01 00:00:00 UTC
Saída 1704067200

E de volta: uma data UTC para segundos da época.

Perguntas frequentes

É enviado algum dado para um servidor quando uso esta ferramenta?
Não. Todas as conversões correm inteiramente no teu navegador usando JavaScript. Os teus timestamps e datas nunca saem do teu dispositivo, o que torna esta ferramenta segura para usar com dados sensíveis de produção ou logs privados.
Porque é que a época Unix começa a 1 de janeiro de 1970?
O sistema operativo Unix foi desenvolvido nos Bell Labs no final da década de 1960 e início da de 1970. Os programadores precisavam de um ponto de referência fixo para a contagem do tempo, e 1970-01-01 00:00:00 UTC foi escolhido como uma âncora conveniente e recente que cabia confortavelmente dentro das limitações de armazenamento do hardware disponível na altura. Foi uma decisão pragmática e não uma com significado profundo.
O que é o problema Y2K38?
Os sistemas que armazenam timestamps Unix como um inteiro com sinal de 32 bits só conseguem representar valores até 2 147 483 647, que corresponde a 19 de janeiro de 2038, 03:14:07 UTC. Depois desse momento, o inteiro transborda e volta a um número negativo grande, o que pode fazer com que os cálculos de datas falhem. Os sistemas modernos de 64 bits não são afetados, mas os dispositivos embebidos antigos, as bases de dados antigas e certos sistemas de ficheiros podem ainda ser vulneráveis.
Qual é a diferença entre timestamps em segundos e em milissegundos?
Um timestamp Unix padrão está em segundos e tem 10 dígitos para as datas da era atual (por ex., 1700000000). O método Date.now() do JavaScript e muitas API web devolvem milissegundos, que acrescentam três dígitos extra (por ex., 1700000000000). Esta ferramenta deteta automaticamente que formato colaste com base no número de dígitos, mas podes anular essa deteção manualmente se for necessário.
Como evito a perda de precisão ao trabalhar com timestamps?
Os números de vírgula flutuante em JavaScript (doubles IEEE-754) só conseguem representar com segurança inteiros até 2^53 - 1. Os timestamps em milissegundos mantêm-se confortavelmente dentro deste intervalo para datas até ao ano 275 760, por isso a precisão não é uma preocupação na prática. No entanto, se trabalhares com timestamps com precisão de nanossegundos de linguagens como Go ou Rust, tem em conta que o JavaScript vai perder precisão para além dos 16 dígitos significativos.
O que é o ISO 8601 e porque devo usá-lo?
O ISO 8601 é uma norma internacional para representar datas e horas como cadeias de texto, por exemplo 2025-12-31T23:59:59Z. Ao contrário dos formatos específicos de cada região, como 12/31/2025 ou 31.12.2025, o ISO 8601 é inequívoco, ordenável como texto simples e compreendido pelo analisador de datas de praticamente todas as linguagens de programação. É o formato recomendado para API, ficheiros de log e troca de dados.
Posso converter datas anteriores a 1970?
Sim. Os timestamps Unix negativos representam datas anteriores à época. Por exemplo, -86400 corresponde a 31 de dezembro de 1969, 00:00:00 UTC. Isto é totalmente suportado pela ferramenta e pela maioria dos ambientes de programação modernos, embora alguns sistemas e bases de dados mais antigos possam rejeitar valores de timestamp negativos.
Como funciona a conversão de fusos horários?
A ferramenta usa a API integrada Intl.DateTimeFormat do navegador com nomes de fuso horário IANA (como America/New_York ou Asia/Tokyo). Todos os cálculos são feitos internamente em UTC; a definição do fuso horário só afeta a saída apresentada. Isto significa que o valor do timestamp subjacente é sempre inequívoco, independentemente do fuso horário que selecionares para visualização.
Que valores de timestamp vale a pena memorizar?
Alguns pontos de referência são úteis de saber: 0 é 1970-01-01, 1000000000 (mil milhões) foi 9 de setembro de 2001, 1500000000 foi 14 de julho de 2017, e o ponto de transbordo Y2K38 é 2147483647. Em milissegundos, Date.now() é sempre um número de 13 dígitos que começa por 1 na década atual.
Um timestamp Unix inclui informação de fuso horário?
Não. Um timestamp Unix é sempre uma contagem de segundos desde 1970-01-01 00:00:00 UTC e é inerentemente independente do fuso horário. A informação de fuso horário é puramente uma questão de apresentação. Esta é uma das principais razões pelas quais os timestamps são preferidos às cadeias de data formatadas para armazenamento e transmissão: eliminam toda a ambiguidade sobre os desvios da hora local.

Sobre Conversor de timestamps Unix

Os programadores deparam-se com timestamps Unix constantemente: os tokens JWT levam um campo exp (expiração) em segundos da época, os cabeçalhos HTTP usam-nos para o controlo de cache, os esquemas de bases de dados armazenam os tempos dos eventos como inteiros para uma indexação rápida, os sistemas de agregação de logs como o Elasticsearch indexam timestamps para consultas por intervalos e as apps móveis sincronizam o estado entre dispositivos usando vetores de alteração baseados na época. Os cientistas e os analistas de dados usam timestamps para alinhar conjuntos de dados de séries temporais de fontes diferentes. Até os utilizadores comuns se deparam com eles nos URL web, nos metadados de ficheiros e nos campos de validade dos cookies, muitas vezes sem se aperceberem.

Esta ferramenta converte entre timestamps Unix em bruto e cadeias de data legíveis inteiramente dentro do teu navegador. Nenhum dado é alguma vez enviado para um servidor. Podes colar um timestamp de 10 dígitos com precisão de segundos ou um de 13 dígitos com precisão de milissegundos; a ferramenta deteta o formato automaticamente. Mostra também o timestamp atual em direto, permite-te escolher qualquer fuso horário IANA a partir de uma lista pesquisável e apresenta a data tanto em ISO 8601 como num formato localizado para uma leitura rápida.

Alguns casos-limite importantes a ter em conta: o objeto Date do JavaScript trabalha em milissegundos, por isso divide sempre por 1000 ao comparar com uma API baseada em segundos. Os timestamps negativos representam datas anteriores a 1970 e são totalmente suportados. O problema Y2K38 é uma questão que se aproxima para os sistemas que armazenam os timestamps como um inteiro com sinal de 32 bits: tais sistemas vão transbordar a 19 de janeiro de 2038, às 03:14:07 UTC, dando a volta para uma data em 1901. A maioria dos sistemas modernos de 64 bits é imune, mas o hardware embebido e as bases de dados antigas podem ainda estar em risco. Quando trabalhares entre fusos horários, armazena e transmite sempre os timestamps em UTC e converte para a hora local apenas para apresentação.

Dos Bell Labs a todos os dispositivos da Terra: a história da época Unix

O sistema operativo Unix nasceu no final da década de 1960 nos Bell Labs da AT&T, criado por Ken Thompson, Dennis Ritchie e colegas. Quando precisaram de uma forma de registar os tempos de modificação dos ficheiros e de agendar processos, conceberam o sistema de timestamps baseado na época. A data específica de 1 de janeiro de 1970 não foi escolhida por nenhuma razão grandiosa: foi simplesmente um número redondo próximo da altura em que o sistema estava a ser construído, e encaixava bem nos inteiros de 32 bits que eram o limite prático do hardware da época.

A limitação do timestamp de 32 bits é a raiz do problema do ano 2038, por vezes chamado Y2K38 ou o bug do milénio Unix. Um inteiro com sinal de 32 bits atinge o máximo em 2 147 483 647, que corresponde às 03:14:07 UTC de 19 de janeiro de 2038. Depois desse segundo, o contador transborda para -2 147 483 648, que corresponde a 13 de dezembro de 1901. Os engenheiros têm vindo a corrigir isto discretamente há anos: o kernel do Linux passou para timestamps de 64 bits, e a maioria das bases de dados e linguagens modernas seguiram o exemplo. No entanto, milhares de milhões de dispositivos embebidos, controladores industriais e sistemas antigos podem nunca receber atualizações.

O JavaScript pegou no conceito de época e multiplicou-o por 1000, trabalhando em milissegundos em vez de segundos, já que a linguagem foi concebida para interfaces web interativas onde a temporização abaixo do segundo importa. É por isso que Date.now() devolve um número de 13 dígitos. Outras linguagens fizeram escolhas diferentes: time.time() do Python devolve um valor de segundos em vírgula flutuante, time.UnixNano() do Go trabalha em nanossegundos, e as bases de dados SQL muitas vezes armazenam os timestamps como cadeias formatadas, todas referindo-se ao mesmo conceito subjacente que dois programadores improvisaram nos Bell Labs há mais de meio século.

Publicidade
Publicidade
Publicidade