Informática
Conversor de timestamp Unix (epoch) para data e de volta
Cole um timestamp e leia na hora a data em UTC e no seu horário local, ou digite uma data e obtenha os segundos desde o epoch. A unidade é deduzida pelo número de dígitos.
O que é o tempo Unix
O tempo Unix conta os segundos desde a meia-noite de 1º de janeiro de 1970 em UTC, o epoch. É assim que quase todos os sistemas operacionais, bancos de dados e protocolos guardam um instante: um único número, independente de fuso horário e horário de verão.
O número não informa a sua unidade. Dez dígitos são segundos, treze milissegundos como em JavaScript e Java, dezesseis microssegundos e dezenove nanossegundos. Para datas entre 1973 e 2286 o número de dígitos basta, e é isso que o modo automático faz.
O fuso só entra quando a data é escrita para uma pessoa: o mesmo timestamp é meia-noite em Londres e nove da noite em São Paulo. Por isso o resultado mostra tanto o UTC quanto o horário local do seu dispositivo.
Erros comuns
- Ler milissegundos como segundos: um timestamp de treze dígitos lido em segundos cai dezenas de milhares de anos no futuro.
- Omitir o fuso: uma data escrita sem ele pode ser lida em UTC por um programa e em horário local por outro.
- Guardar os segundos em um inteiro de 32 bits com sinal: em 19 de janeiro de 2038 às 03:14:07 UTC o valor estoura e fica negativo.
Perguntas frequentes
O tempo Unix conta os segundos bissextos?
Não. Todo dia tem exatamente 86.400 segundos; quando um segundo bissexto é adicionado, os sistemas o repetem ou o diluem. Por isso o tempo Unix não é uma contagem exata dos segundos físicos decorridos.
O que é o problema do ano 2038?
Os sistemas que guardam os segundos em um inteiro de 32 bits com sinal chegam no máximo a 2.147.483.647, ou seja, 19 de janeiro de 2038. O segundo seguinte vira um número negativo, que corresponde a 1901.
Como obtenho o timestamp atual em um programa?
Em JavaScript Date.now() dá milissegundos, em Python time.time() segundos com decimais, em um terminal Linux date +%s segundos inteiros. O botão Agora faz o mesmo aqui.
Como funciona este cálculo
Data UTC = epoch (1970-01-01 00:00:00 UTC) + timestamp ÷ unidade. A unidade automática é: segundos abaixo de 10^11, milissegundos abaixo de 10^14, microssegundos abaixo de 10^17, senão nanossegundos. De uma data local subtrai-se o fuso em vigor naquela data, horário de verão incluído. A semana ISO é a que contém a quinta-feira: a semana 1 contém a primeira quinta-feira do ano.
Calculadoras relacionadas
Gerador de hash
MD5, SHA-1, SHA-256, SHA-384 e SHA-512 de um texto ou de bytes, com verificação de um hash.
Força da senha
Entropia em bits e tempo para adivinhá-la, com os padrões fracos reconhecidos. Nada sai do navegador.
Conversor Base64
De texto, inteiro, hexadecimal ou binário para Base64 e de volta, com os grupos de 6 bits explicados.
Conversor de cores
De HEX para RGB, HSL, HSV e CMYK e de volta, com o contraste WCAG de texto branco e preto.