Conversor de timestamp Unix

Converta entre timestamps Unix (segundos ou milissegundos desde a época) e datas legíveis. Compatível com vários fusos horários, preenchimento instantâneo da hora atual e exibição de tempo relativo para desenvolvedores.

Conceitos básicos do timestamp Unix

Um timestamp Unix representa uma data e hora como o número de segundos decorridos desde 00:00:00 UTC de 1º de janeiro de 1970 (a época Unix). Veja abaixo uma tabela com valores conhecidos e as datas que eles representam.

Timestamp (segundos) Data e hora UTC Observação
0 1970-01-01T00:00:00Z A época Unix (o ponto de partida de todos os timestamps)
1000000000 2001-09-09T01:46:40Z O momento em que o timestamp atingiu um bilhão de segundos (o "Unix Billennium")
1234567890 2009-02-13T23:31:30Z Um valor que ficou conhecido por conter os dígitos de 1 a 9 em sequência
2147483647 2038-01-19T03:14:07Z O problema do ano 2038: o valor máximo de um inteiro de 32 bits com sinal (ocorre estouro um segundo depois)

Dicas de uso

  • Um valor de 10 dígitos costuma estar em segundos, enquanto um de 13 dígitos costuma estar em milissegundos. Selecione "Detecção automática" para inferir a unidade a partir do número de dígitos.
  • Cole diretamente um timestamp de um log de servidor ou resposta de API para conferir de uma só vez o horário correspondente em vários fusos horários.
  • Ao converter uma data em timestamp, certifique-se de selecionar explicitamente a qual fuso horário a data e hora inseridas pertencem.
  • O formato ISO 8601 (UTC) pode ser interpretado diretamente pela maioria das linguagens de programação e bancos de dados, sendo útil ao pesquisar logs ou projetar uma API.
  • Clique em "Preencher hora atual" para completar instantaneamente o campo com a hora atual obtida do Date.now() do navegador.

Perguntas frequentes

Um timestamp Unix (tempo de época) expressa uma data e hora como o número de segundos decorridos desde 00:00:00 UTC de 1º de janeiro de 1970 (a época Unix). Por representar um instante como um único número independente de fuso horário, é amplamente usado como forma padrão de trocar datas e horas entre computadores, como em logs de servidor, bancos de dados e APIs.

O problema do ano 2038 refere-se a uma falha em sistemas que armazenam timestamps Unix como inteiros de 32 bits com sinal: um segundo após 03:14:07 UTC de 19 de janeiro de 2038 (o valor máximo, 2.147.483.647), o valor estoura e a data representada retrocede para cerca de 1901. A maioria dos sistemas modernos usa inteiros de 64 bits e não é afetada, mas dispositivos embarcados e sistemas legados ainda podem correr risco.

Um timestamp que representa a era atual (anos 2020 a 2030) geralmente tem cerca de 10 dígitos se estiver em segundos, ou cerca de 13 dígitos se estiver em milissegundos. O modo "Detecção automática" desta ferramenta usa essa diferença no número de dígitos para adivinhar a unidade, mas consultar a especificação dos dados originais ou a documentação da API é a forma mais confiável de ter certeza.

Não há um único motivo documentado de forma definitiva, mas costuma-se atribuir isso ao fato de o Unix ter sido desenvolvido por volta de 1969-1970 e ao ano redondo ser conveniente diante das limitações de memória dos computadores da época. Essa data ficou conhecida como "época Unix" e desde então se tornou um padrão de fato seguido por quase todas as linguagens de programação e sistemas operacionais.

Um valor negativo representa uma data e hora anteriores a 1º de janeiro de 1970. Por exemplo, o timestamp -86400 corresponde a 00:00:00 UTC de 31 de dezembro de 1969. Sistemas que lidam com datas históricas ou datas de nascimento anteriores a 1970 às vezes utilizam timestamps negativos.
ツールくん

Curiosidade — Por que os computadores contam o tempo em segundos?

Os humanos expressam datas e horas combinando ano, mês, dia e hora, como em "12 de julho de 2026, 17h08". Para um computador, porém, esse formato é incômodo: é preciso levar em conta regras complexas como anos bissextos, fusos horários e horário de verão, e até calcular a diferença entre duas datas se torna uma operação trabalhosa. A solução encontrada foi representar o tempo com um único número: os segundos decorridos desde um instante de referência. É exatamente isso que um timestamp Unix faz.

A maior vantagem de representar o tempo como um único inteiro é que comparar datas e calcular diferenças entre elas se reduz a uma aritmética simples. Descobrir "quantos segundos separam esses dois eventos" é apenas uma questão de subtrair um timestamp do outro, sem se preocupar com anos bissextos ou com a duração variável dos meses. Graças a essa simplicidade, o formato foi adotado não apenas por sistemas do tipo Unix, mas também pelo Windows, por bancos de dados e pelas representações internas de muitas linguagens de programação, tornando-se um padrão de fato em todo o mundo.

Por outro lado, esse design de um único número independente de fuso horário significa que a conversão de fuso horário só se torna necessária quando um humano precisa ler o valor. O mesmo timestamp pode parecer madrugada em Tóquio e tarde do dia anterior em Nova York, dependendo do fuso horário em que é exibido. Muitos dos bugs confusos de "o horário está errado" encontrados ao investigar logs ou depurar integrações de API decorrem exatamente desse tipo de conversão de fuso horário negligenciada.