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
1700000000
2023-11-14 22:13:20 UTC
Segundos da época Unix para uma data UTC legível.
2024-01-01 00:00:00 UTC
1704067200
E de volta: uma data UTC para segundos da época.
Perguntas frequentes
É enviado algum dado para um servidor quando uso esta ferramenta?
Porque é que a época Unix começa a 1 de janeiro de 1970?
O que é o problema Y2K38?
Qual é a diferença entre timestamps em segundos e em milissegundos?
Como evito a perda de precisão ao trabalhar com timestamps?
O que é o ISO 8601 e porque devo usá-lo?
Posso converter datas anteriores a 1970?
Como funciona a conversão de fusos horários?
Que valores de timestamp vale a pena memorizar?
Um timestamp Unix inclui informação de fuso horário?
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.