Conversor de Tempo Epoch
Converta carimbos de data/hora Unix para datas UTC ou transforme uma data em segundos epoch.
Como utilizar este conversor de tempo epoch
- Escolha o modo de conversão
Selecione Epoch para data ou Data para epoch no campo Modo de conversão.
- Para epoch para data
Introduza o carimbo de data/hora Unix em segundos no campo Carimbo de data/hora Epoch (segundos).
- Para data para epoch
Escolha a data em Data do calendário e, em seguida, defina Hora (UTC), Minuto (UTC) e Segundo (UTC) conforme necessário.
- Ler o resultado
A calculadora mostra o valor UTC, milissegundos Unix e o dia da semana.
Como funciona este conversor de tempo epoch
Este conversor de tempo epoch traduz entre carimbos de data/hora Unix e datas UTC legíveis por humanos. O tempo Unix — também chamado de tempo POSIX ou tempo epoch — conta o número de segundos decorridos desde a época Unix, definida como a meia-noite UTC de 1 de janeiro de 1970 (1970-01-01T00:00:00Z). Esta representação de número inteiro único é o padrão de facto para armazenar e transmitir carimbos de data/hora em bases de dados, APIs, ficheiros de registo, tokens JWT e virtualmente todas as linguagens de programação modernas. O conversor processa ambas as direções: ao introduzir um carimbo numérico, obtém a data UTC correspondente, o dia da semana e o equivalente em milissegundos; ao introduzir uma data e hora do calendário, obtém o valor epoch em segundos e milissegundos.
Tempo Unix = segundos decorridos desde 1970-01-01T00:00:00Z Para converter o timestamp Unix 1.700.000.000 numa data: a partir de 1970-01-01 00:00:00 UTC, adicione 1.700.000.000 segundos. Isto equivale a 19.675 dias, 17 horas, 46 minutos e 40 segundos. A data UTC resultante é 2023-11-14 às 22:13:20 UTC, que calha a uma terça-feira. O equivalente em milissegundos é 1.700.000.000.000. Inversamente, introduzir 14 de novembro de 2023 às 22:13:20 UTC devolve um valor de época de exatamente 1.700.000.000.
O timestamp 0 converte-se em 1970-01-01 00:00:00 UTC (quinta-feira). O equivalente em milissegundos é 0.
O timestamp 1.704.000.000 converte-se em 2023-12-31 12:00:00 UTC (domingo). Introduzir essa data e hora no modo Data para epoch devolve 1.704.000.000.
- ✓ Todos os cálculos são em UTC. As conversões para a hora local requerem a aplicação do fuso horário adequado após a conversão.
- ✓ Os segundos bissextos não são contabilizados. Tal como o POSIX, este conversor trata cada dia como tendo exatamente 86.400 segundos, o que corresponde ao comportamento da maioria das linguagens de programação e sistemas operativos.
- ✓ Os timestamps negativos representam datas anteriores à época (1 de janeiro de 1970). Por exemplo, −86400 corresponde a 31 de dezembro de 1969.
- ✓ Os timestamps em milissegundos devem ser divididos por 1.000 antes da introdução; o conversor aceita segundos como entrada e apresenta o equivalente em milissegundos nos resultados.
- O Date.now() do JavaScript e o System.currentTimeMillis() do Java devolvem milissegundos, não segundos — divida por 1.000 antes de introduzir o valor aqui, ou utilize o resultado em milissegundos para comparação.
- O problema do ano 2038 afeta os timestamps de inteiros de 32 bits com sinal, que irão transbordar a 19 de janeiro de 2038 às 03:14:07 UTC. A maioria dos sistemas modernos já migrou para timestamps de 64 bits.
- Ao depurar respostas de API ou ficheiros de registo, preste atenção a timestamps que pareçam desfasados por exatamente 3.600 ou 7.200 segundos — isto indica geralmente que foi aplicado (ou omitido) um fuso horário em algum ponto do processo.
- O tempo Epoch é sempre monotonicamente crescente (ignorando ajustes de segundos bissextos), o que o torna ideal para ordenar eventos, calcular durações e gerar identificadores únicos baseados no tempo.
- IEEE Std 1003.1 (POSIX) — definição de Segundos Desde a Época
- Origem da época Unix — Documentação da The Unix Heritage Society e Bell Labs
- RFC 3339 — Data e Hora na Internet: Timestamps
O que são Unix timestamps?
Um Unix timestamp é o número de segundos decorridos desde a meia-noite UTC de 1 de janeiro de 1970 — a época Unix. Este número inteiro único é o padrão de facto para representar o tempo em bases de dados, APIs, ficheiros de registo e na maioria das linguagens de programação. Por ser independente do fuso horário e monotonicamente crescente, simplifica a ordenação, cálculos de duração e comparações temporais. O Date.now() do JavaScript e muitas APIs devolvem milissegundos (1.000 × segundos), por isso divida por 1.000 antes de introduzir um valor em milissegundos aqui. Timestamps negativos representam datas anteriores a 1970; por exemplo, −86400 é exatamente um dia antes da época.
Casos de utilização do tempo epoch para programadores
Os programadores utilizam Unix timestamps ao armazenar tempos de eventos em bases de dados, serializar datas em APIs JSON, gerar chaves de cache baseadas no tempo e depurar entradas de registo. As colunas das bases de dados armazenam frequentemente timestamps como números inteiros para indexação e consultas de intervalo eficientes. As respostas das APIs devolvem frequentemente segundos ou milissegundos epoch para evitar ambiguidades de fuso horário. Ao depurar, a conversão de um timestamp bruto de um registo ou de um claim JWT para uma data legível revela rapidamente se o valor está correto ou desviado por um fator de fuso horário. O tempo epoch também é utilizado para limitação de taxa, expiração de sessões e geração de identificadores únicos ordenáveis em sistemas distribuídos.
Perguntas frequentes sobre o conversor de tempo Epoch
O que é a época Unix?
A época Unix é o ponto de referência a partir do qual o tempo Unix é medido: meia-noite UTC de 1 de janeiro de 1970 (1970-01-01T00:00:00Z). Um timestamp de 0 corresponde a esse momento exato.
Porque é que o meu timestamp de JavaScript tem mais dígitos?
O Date.now() do JavaScript devolve milissegundos desde a época, não segundos. Divida por 1.000 para converter para o formato baseado em segundos utilizado por esta ferramenta, ou compare diretamente com o resultado em milissegundos.
Posso introduzir um carimbo de data/hora negativo?
Sim. Os valores negativos representam datas anteriores à época. Por exemplo, −86400 corresponde a 1969-12-31T00:00:00Z, exatamente um dia antes da época.
Isto lida com segundos bissextos?
Não, e isto está em conformidade com a norma POSIX. O tempo POSIX assume que cada dia tem exatamente 86.400 segundos. Os 27 segundos bissextos inseridos desde 1972 não são representados individualmente, o que significa que o UTC e o tempo Unix podem diferir até um segundo nos limites dos segundos bissextos.
O que é o problema do ano 2038?
Os sistemas que armazenam o tempo Unix como um número inteiro de 32 bits com sinal sofrerão um transbordo (overflow) a 19 de janeiro de 2038 às 03:14:07 UTC, passando para um número negativo elevado e produzindo datas em 1901. A maioria das plataformas modernas utiliza agora carimbos de data/hora de 64 bits, que não sofrerão transbordo durante mais de 290 mil milhões de anos.