Conversor de Timestamp Unix para Data: Suporte a Formatos de 12/24 Horas
Converta timestamps Unix em datas e horas legíveis. Escolha entre formatos de 12 horas e 24 horas com esta ferramenta de conversão simples e fácil de usar.
Conversor de Timestamp Unix
O timestamp Unix é o número de segundos desde 1º de janeiro de 1970 (UTC)
Data e Hora Convertidas
O que é um Timestamp Unix?
Um timestamp Unix é o número de segundos que se passaram desde 1º de janeiro de 1970 (meia-noite UTC/GMT), sem contar os segundos intercalares. É amplamente utilizado em sistemas Unix e linguagens de programação para cálculos de data e hora.
Documentação
Conversor de timestamp Unix para data
Um carimbo de data/hora Unix é um número que representa um ponto específico no tempo. Ele conta os segundos inteiros decorridos desde a meia-noite UTC de 1 de janeiro de 1970, um momento chamado de época Unix. Esta ferramenta converte um carimbo de data/hora Unix em uma data do calendário e uma hora do relógio, exibidas no formato de 24 horas ou de 12 horas. O resultado é mostrado no fuso horário configurado no dispositivo que executa o conversor.
Como converter um timestamp Unix em uma data
A fórmula básica é simples:
data = época Unix (1970-01-01, 00:00:00 UTC) + timestamp (em segundos)
Para transformar uma quantidade bruta de segundos em uma data, soma-se essa quantidade de segundos a 1 de janeiro de 1970. Depois, o resultado precisa ser dividido em ano, mês, dia, hora, minuto e segundo. Essa divisão é a parte difícil, pois deve levar em conta os anos bissextos (que acrescentam um dia a fevereiro) e o fato de os meses terem durações diferentes. A maioria das linguagens de programação tem uma função de data embutida que faz isso automaticamente, de modo que ninguém precisa resolver passo a passo.
Exemplo prático
Considere o timestamp 1609459200.
- Divida pelo número de segundos em um dia: 1.609.459.200 ÷ 86.400 = 18.628 dias.
- Conte 18.628 dias a partir de 1 de janeiro de 1970, levando em conta os anos bissextos ao longo do caminho.
- A contagem chega a 1 de janeiro de 2021.
Assim, 1609459200 é convertido em sexta-feira, 1 de janeiro de 2021, 00:00:00 UTC. O dia da semana, sexta-feira, resulta da mesma contagem de dias. Em um dispositivo configurado para outro fuso horário, o conversor mostra o mesmo instante na hora local. Em Nova York (UTC−5), por exemplo, é quinta-feira, 31 de dezembro de 2020, 7:00:00 da noite.
Um carimbo de data/hora também pode ser negativo, o que representa uma data anterior a 1970. Por exemplo, -86400 é exatamente um dia antes da época: 31 de dezembro de 1969, 00:00:00 UTC.
Precisão do timestamp: segundos, milissegundos e microssegundos
Nem todo sistema mede o tempo em segundos. Este conversor observa quantos dígitos um timestamp tem e estima sua precisão:
| Dígitos | Precisão | Exemplo |
|---|---|---|
| 10 | Segundos | 1609459200 |
| 13 | Milissegundos | 1609459200000 |
| 16 | Microssegundos | 1609459200000000 |
Um carimbo de data/hora negativo ganha um dígito extra pelo sinal de menos, então -1609459200 (11 dígitos) continua sendo lido como segundos. Qualquer outra quantidade de dígitos é tratada como segundos simples. Valores em milissegundos e microssegundos são divididos por 1.000 ou 1.000.000 antes de a fórmula de segundos acima ser aplicada.
Formato de hora de 12 horas e de 24 horas
O conversor oferece duas maneiras de exibir a hora do dia.
- O formato de 24 horas conta as horas de 0 a 23, sem indicação de AM ou PM. Nos Estados Unidos, costuma ser chamado de horário militar. 3:00 da tarde se escreve 15:00.
- O formato de 12 horas conta as horas de 1 a 12, acrescentando AM ao período da meia-noite ao meio-dia e PM ao período do meio-dia à meia-noite. 15:00 no formato de 24 horas torna-se 3:00 PM.
O formato de 24 horas é padrão na maior parte da Europa, da América Latina e da Ásia, bem como em contextos científicos, militares e médicos no mundo todo. O formato de 12 horas continua comum no uso cotidiano nos Estados Unidos, no Canadá e em alguns outros países de língua inglesa.
Intervalo de datas aceito
Este conversor aceita qualquer carimbo de data/hora de -62135596800 a 253402300799, depois de converter milissegundos ou microssegundos em segundos. Isso cobre todas as datas de 1 de janeiro do ano 1 até 31 de dezembro de 9999 (UTC). Carimbos fora desse intervalo são rejeitados por serem grandes ou pequenos demais para a conversão.
O problema do ano 2038
Muitos sistemas de computador mais antigos armazenam o carimbo de data/hora Unix como um inteiro com sinal de 32 bits, que só consegue contar até 2.147.483.647. Essa quantidade de segundos após a época cai em 19 de janeiro de 2038, às 03:14:07 UTC. Depois desse instante, um sistema de 32 bits sem correção volta a um número negativo e lê a data como sendo de 1901 em vez de 2038. Isso é conhecido como o problema do ano 2038. Ele não afeta todos os sistemas: softwares modernos que armazenam carimbos de data/hora como números de 64 bits, ou como números comuns, como o JavaScript faz, conseguem representar datas milhares de anos além de 2038 sem estouro. Uma data em JavaScript pode guardar até 100.000.000 de dias para cada lado da época, o que alcança o ano 275760.
Usos comuns dos timestamps Unix
Timestamps Unix aparecem em toda a computação porque são compactos e fáceis de comparar ou ordenar:
- Linhas de banco de dados os utilizam para registrar quando um registro foi criado ou alterado pela última vez.
- Servidores web os utilizam em cabeçalhos HTTP e cookies para controlar o armazenamento em cache e a expiração.
- Arquivos de log registram cada evento com um deles, para que as entradas possam ser organizadas em ordem.
- O Git e outros sistemas de controle de versão registram os horários dos commits dessa maneira.
- APIs web os utilizam para indicar quando os dados foram gerados ou atualizados pela última vez.
Perguntas frequentes
O que é a época Unix? A época Unix é a meia-noite UTC de 1 de janeiro de 1970. É o ponto zero a partir do qual todos os carimbos de data/hora Unix são contados.
Um carimbo de data/hora Unix inclui segundos intercalares? Não. O tempo Unix conta exatamente 86.400 segundos por dia e ignora os segundos intercalares acrescentados ocasionalmente ao UTC, por isso fica ligeiramente defasado em relação ao tempo astronômico.
Um carimbo de data/hora Unix pode ser negativo? Sim. Um valor negativo representa uma data anterior a 1 de janeiro de 1970.
Por que meu carimbo de data/hora tem 13 dígitos em vez de 10?
Um carimbo de 13 dígitos é medido em milissegundos, e não em segundos. O Date.now() do JavaScript retorna os milissegundos decorridos desde a época, e muitas APIs da web fazem o mesmo, por isso valores de 13 dígitos são comuns no desenvolvimento web.
Um carimbo de data/hora Unix é o mesmo em todos os fusos horários? O número em si não está ligado a nenhum fuso horário; ele sempre conta os segundos desde a época em UTC. Convertê-lo em uma data e hora locais, como "3:00 da tarde, horário do leste dos EUA", exige aplicar um deslocamento de fuso horário sobre o carimbo bruto.
Qual é a maior data que este conversor consegue tratar? 31 de dezembro de 9999, às 23:59:59 UTC, que corresponde ao carimbo 253402300799.
Referências
- The Open Group. The Open Group Base Specifications Issue 8, Chapter 3: Definitions. Definições do POSIX: época — a época é 00:00:00 de 1 de janeiro de 1970, UTC.
- The Open Group. The Open Group Base Specifications Issue 8, Chapter 4: General Concepts. POSIX: segundos desde a época — cada dia é contado como exatamente 86.400 segundos.
- MDN Web Docs. Date.now(). Referência de Date.now() — retorna os milissegundos decorridos desde a época.
- MDN Web Docs. Date. Referência de Date do JavaScript — um Date guarda até ±100.000.000 de dias a partir da época, até 13 de setembro de 275760.