Epoch Converter: timestamp Unix para data
Cole qualquer epoch, timestamp ou data e veja por extenso, no seu fuso horário e em UTC, com tudo o mais que o número pode ser.
Um número · todos os epochs
7 leituras caem numa data realLido como Segundos Unix pelo comprimento: 9 dígitos. Como Segundos GPS, seria 6 de dezembro de 2005: também uma data real, então fica a um clique.
- Milissegundos
- Microssegundos
- Nanossegundos
- ISO 8601
O relógio do seu navegador conta milissegundos inteiros: os zeros depois deles são preenchimento, não precisão.
UTC · UTC+00:00 nesta data
1793813880- Milissegundos
1793813880000- ISO 8601
2026-11-04T17:38:00Z
Início e fim em UTC
| Início | Fim | |
|---|---|---|
| Dia | 1793750400 | 1793836799 |
| Mês | 1793491200 | 1796083199 |
| Ano | 1767225600 | 1798761599 |
Tudo acontece nesta aba: nada do que você cola é enviado.
Como converter timestamp para data e hora
Cole no campo o timestamp que você tem, na unidade em que ele estiver, e a data aparece no seu fuso horário e em UTC. Você também pode digitar uma data, o cabeçalho Date de um e-mail ou a palavra “agora” (ou now) para obter o tempo epoch correspondente.
A página lê um número em segundos, milissegundos, microssegundos e nanossegundos ao mesmo tempo, escolhe a leitura que cai numa data real, diz por quê e deixa as outras leituras a um clique. Abaixo da resposta, os mesmos dígitos são lidos como timestamp do Windows, do .NET, do Mac, do Excel, do NTP e do GPS, e todos os formatos podem ser copiados.

Cole qualquer coisaUm número em qualquer unidade, uma data ISO, o cabeçalho Date de um e-mail, uma data e hora SQL ou a palavra “agora” (ou “now”). O indicador diz como foi lido.Os dígitos, contadosA régua sob o número agrupa os dígitos de três em três, então 18 dígitos viram seis grupos: a primeira pista do que ele é.A resposta primeiroO dia da semana e a data por extenso, depois a hora em UTC e no seu próprio fuso horário, e todos os formatos para copiar.Qual leitura, e por quêA página diz em palavras qual leitura escolheu e por quê, e cita a outra leitura que também cai numa data real.Todos os outros epochsOs mesmos dígitos lidos em cada unidade e em cada epoch, cada um como uma barra a partir do próprio início. Escolha uma linha para usar essa leitura.O que é o tempo epoch e por que ele começa em 1970?
O tempo epoch, ou tempo Unix, é o número de segundos desde 1970-01-01 00:00:00 UTC, o momento que o POSIX chama de Epoch. O timestamp 0 é esse momento, e a data epoch 817876800 é 1995-12-02 04:00 UTC.
Nenhuma fonte primária registra por que 1970 foi escolhido. O primeiro manual do Unix, de novembro de 1971, contava sexagésimos de segundo a partir de 1º de janeiro de 1971 e observava que o relógio se esgotaria em cerca de dois anos e meio; na Sétima Edição, em 1979, a contagem já era de segundos desde 1º de janeiro de 1970, uma data redonda próxima da época em que o Unix estava sendo escrito. O próprio UTC só começou em 1972, então timestamps anteriores são UTC por convenção.
cheio em 8 de abril de 1973 · 2,27 anos
1901-12-13 → 2038-01-1968 anos para cada lado
contagens negativas: antes de 1970
UNIX Programmer's Manual, primeira edição, time (II), 3 de novembro de 1971
O usuário de mentalidade--cronológica notará que 2**32 sexagésimos de segundo são apenas cerca de 2,5 anos.
Todos os epochs que esta página lê, numa só linha
- 1
.NET
0001-01-01· ticks de 100 ns - 2
Windows FILETIME
1601-01-01· ticks de 100 ns - 3
Excel
1899-12-30· dias - 4NTP
1900-01-01· segundos - 5
Mac HFS+
1904-01-01· segundos - 6
Excel 1904
1904-01-01· dias - 7Unix
1970-01-01· segundos - 8GPS
1980-01-06· segundos
Meu timestamp está em segundos, milissegundos, microssegundos ou nanossegundos?
Conte os dígitos: um timestamp atual tem 10 dígitos em segundos, 13 em milissegundos, 16 em microssegundos e 19 em nanossegundos. JavaScript e Java usam milissegundos; as ferramentas Unix e a maioria das APIs usam segundos.
A contagem de dígitos é uma pista forte, não uma prova. Timestamps NTP, GPS e do Mac também têm dez dígitos hoje, e um Windows FILETIME e uma contagem de ticks do .NET têm dezoito cada um; é por isso que esta página lê todas as escalas ao mesmo tempo e mostra a leitura escolhida ao lado das outras. Um FILETIME também é grande demais para o JavaScript guardar com exatidão, então a página mantém os dígitos como você os colou.
10 dígitos · 4 escalas · só os dígitos não dizem qual é qual
18 dígitos · 2 escalas · só o primeiro dígito as diferencia
Contagens de segundos com 10 dígitos vão de 2001-09-09T01:46:40Z a 2286-11-20T17:46:39Z. É um intervalo de 285 anos, não uma unidade.
Como converter um timestamp Unix para data no meu fuso horário?
Um timestamp Unix não tem fuso horário: ele indica um único instante no mundo inteiro. A data depende de onde você o lê, então a página mostra o seu fuso e o UTC lado a lado, além de qualquer outro fuso que você escolher.
O seletor de fuso usa o banco de dados de fusos horários da IANA, o mesmo que o seu sistema operacional usa, então as mudanças de horário de verão são aplicadas para a própria data, não para hoje. No sentido contrário, uma data digitada sem deslocamento é lida como UTC, e a página oferece lê-la no seu próprio fuso.
Um instante1793057400= 2026-10-26T23:30:00Z
- Los Angeles16:30seg., 26 de out.UTC−07:00
- Nova York19:30seg., 26 de out.UTC−04:00
- UTC23:30seg., 26 de out.UTC+00:00
- Berlim00:30ter., 27 de out.UTC+01:00
- Calcutá05:00ter., 27 de out.UTC+05:30
- Tóquio08:30ter., 27 de out.UTC+09:00
- Lord Howe10:30ter., 27 de out.UTC+11:00
Berlim, 29 de março de 202623 horas · os relógios pularam de 02:00 para 03:00
Berlim, 25 de outubro de 202625 horas · os relógios voltaram de 03:00 para 02:00
Horário Padrão da Europa Central · UTC+01:00Horário de Verão da Europa Central · UTC+02:00a hora que aconteceu duas vezesa hora que nunca aconteceu
O que acontece com o tempo Unix em 2038?
Um tempo Unix guardado como inteiro de 32 bits com sinal se esgota em 2147483647, que é 2038-01-19 03:14:07 UTC; um segundo depois, ele dá a volta para uma data em dezembro de 1901. Sistemas que contam em 64 bits, como o POSIX agora exige, não são afetados.
Em 2026, o risco está no armazenamento, não nos relógios: uma coluna TIMESTAMP do MySQL ainda termina em 2038-01-19 03:14:07 UTC, assim como qualquer formato de arquivo ou dispositivo embarcado que manteve um campo de 32 bits. O NTP tem uma virada própria, anterior: os segundos de 32 bits dele dão a volta em 2036. A página marca qualquer timestamp perto ou além do limite de 2038.
2.147.483.647o maior número de 32 bits com sinal
01111111 11111111 11111111 11111111ter., 19 de jan. de 203803:14:07 UTC
+ 1 segundo
-2.147.483.648os mesmos 32 bits, lidos como número com sinal
10000000 00000000 00000000 00000000sex., 13 de dez. de 190120:45:52 UTC
Último segundo, UTC
time_t de 32 bits com sinal2038-01-19 03:14:07TIMESTAMP do MySQL2038-01-19 03:14:07hoje2038-01-19
time_t de 64 bits, que o POSIX.1-2024 exige, alcança cerca de 292 bilhões de anos para cada lado de 1970. Fonte: POSIX.1-2024 A.4.19, MySQL 8.4, RFC 5905 §6, TN1150Um timestamp Unix pode ser negativo?
Sim: um timestamp negativo é uma data antes de 1970. -1 é 1969-12-31 23:59:59 UTC, e -86400 é 1969-12-31 00:00:00 UTC.
O próprio POSIX deixa os valores negativos indefinidos, mas o GNU e a maioria dos sistemas os tratam como datas antes de 1970 por extensão documentada, assim como JavaScript, Python e PostgreSQL. O MySQL é a exceção: a coluna TIMESTAMP dele começa em 1970, e FROM_UNIXTIME(-1) retorna NULL. Datas de nascimento e registros históricos são timestamps negativos comuns, então a página os lê como datas em vez de tratá-los como erro.
SegundosQuão longe no passado (escala log)Data, UTC
0qui., 1 de jan. de 197000:00:00 UTC-1qua., 31 de dez. de 196923:59:59 UTC-86.400qua., 31 de dez. de 196900:00:00 UTC-31.536.000qua., 1 de jan. de 196900:00:00 UTC-1.000.000.000dom., 24 de abr. de 193822:13:20 UTC-2.147.483.648sex., 13 de dez. de 190120:45:52 UTC- POSIX
Se o ano for <1970 ou o valor for negativo, a relação é indefinida.
GNU date
@-1é 1969-12-31 23:59:59 UTC: contagens negativas, como extensão do POSIXJavaScriptqualquer data até cerca de 273.790 anos antes ou depois de 1970
MySQL TIMESTAMPcomeça em 1970-01-01 00:00:01 UTC: não aceita valor negativo
Windows, .NET, Mac, Excel, NTP e GPS: os outros epochs
Muitos sistemas contam a partir do próprio zero: o Windows desde 1601, o .NET desde o ano 1, o Mac e o HFS+ desde 1904, o Excel desde 1900, o NTP desde 1900 e o GPS desde 6 de janeiro de 1980. Um número que não faz sentido como timestamp Unix muitas vezes é um destes.
O FILETIME 133756272000000000, por exemplo, conta intervalos de 100 nanossegundos desde 1601 e é 2024-11-09 12:00:00 UTC. O Excel conta dias e trata 1900 como ano bissexto de propósito, então os seriais abaixo de 61 ficam um dia fora, e a página os sinaliza. O tempo GPS ignora os segundos bissextos e está 18 segundos à frente do UTC desde 2017.
| Epoch | Unidade | Desde | Em 26 de out. de 2026 | Dígitos | Fuso horário | Onde você o encontra |
|---|---|---|---|---|---|---|
| Segundos Unix | segundos | 1970-01-01 | 1792972800 | 10 | UTC (POSIX) | date +%s, time.time() do Python |
| milissegundos | 1970-01-01 | 1792972800000 | 13 | UTC | Date.now() do JavaScript, Java | |
| nanossegundos | 1970-01-01 | 1792972800000000000 | 19 | UTC | UnixNano() do Go | |
| ticks de 100 ns | 1601-01-01 | 134374464000000000 | 18 | UTC (hora local em FAT) | NTFS, lastLogon do Active Directory, Win32 | |
| ticks de 100 ns | 0001-01-01 | 639285696000000000 | 18 | UTC ou local, conforme o Kind | DateTime.Ticks do .NET | |
| dias | 1899-12-30 | 46321 | 5 | nenhum: relógio de parede | Excel, Google Sheets, LibreOffice | |
| dias | 1904-01-01 | 44859 | 5 | nenhum: relógio de parede | Excel antigo para Mac | |
| segundos | 1904-01-01 | 3875817600 | 10 | GMT (HFS clássico: local) | datas de arquivos HFS+ | |
| Segundos NTP | segundos | 1900-01-01 | 4001961600 | 10 | UTC | pacotes NTP |
| Segundos GPS | segundos | 1980-01-06 | 1477008018 | 10 | sem segundos bissextos: UTC + 18 s | receptores GPS, arquivos RINEX |
O tempo Unix conta os segundos bissextos?
Não. O tempo Unix dá a todo dia exatamente 86.400 segundos, então um segundo bissexto não tem número próprio, e o POSIX diz isso: o tempo POSIX decomposto não é necessariamente UTC, apesar da aparência.
Desde 1972, 27 segundos bissextos foram acrescentados ao UTC; o tempo Unix não tem número para o segundo extra, então um timestamp vale por dois segundos. O último foi em 2016-12-31, e em 2022 a Conferência Geral de Pesos e Medidas decidiu que, até 2035, o limite que os torna necessários será ampliado, o que na prática acaba com eles. O tempo GPS, que nunca os teve, mostra a diferença: está 18 segundos à frente.
Os últimos segundos de 31 de dezembro de 1998
O tempo Unix dá 915148800 duas vezes; o tempo GPS, que não tem segundos bissextos, continua contando.
27 segundos bissextosnenhum depois de 31 de dezembro de 2016 · nenhum anunciado antes de 28 de junho de 2027
antes do início do tempo GPSdesde o início do tempo GPS: cada um o deixou um segundo mais à frente
POSIX.1-2024, Rationale A.4.19
O Tempo Universal Coordenado (UTC) inclui segundos bissextos. No entanto, no tempo POSIX (segundos desde o Epoch), os segundos bissextos são ignorados (não aplicados) para oferecer um método fácil e compatível de calcular diferenças de tempo. Portanto, o tempo POSIX decomposto não é necessariamente UTC, apesar da aparência.
Timestamps Unix em Python, JavaScript, Java, C#, Go, SQL e no shell
Toda linguagem converte nos dois sentidos em uma ou duas linhas. As armadilhas são a unidade (JavaScript e Java contam milissegundos) e o fuso horário (um banco de dados pode ler o valor no fuso da sessão).
Cada exemplo abaixo transforma 817876800 numa data e uma data de volta em segundos, e cada um foi executado para conferir a saída. No shell, o macOS e os BSDs usam date -r 817876800, enquanto o GNU/Linux usa date -d @817876800: os dois não são intercambiáveis.
from datetime import datetime, timezone t = datetime.fromtimestamp(817876800, tz=timezone.utc) print(t.isoformat()) # 1995-12-02T04:00:00+00:00 back = datetime(1995, 12, 2, 4, 0, tzinfo=timezone.utc) print(int(back.timestamp())) # 817876800
Executado com Python 3.14.4 em 26 de outubro de 2026: imprime o que os comentários mostram.
const t = new Date(817876800 * 1000); // Date counts milliseconds console.log(t.toISOString()); // 1995-12-02T04:00:00.000Z const back = Date.UTC(1995, 11, 2, 4, 0, 0) / 1000; // months count from 0 console.log(back); // 817876800
Executado com Node.js 22.23.2 em 26 de outubro de 2026: imprime o que os comentários mostram.
import java.time.Instant;
public class Main {
public static void main(String[] args) {
Instant t = Instant.ofEpochSecond(817876800L);
System.out.println(t); // 1995-12-02T04:00:00Z
long back = Instant.parse("1995-12-02T04:00:00Z").getEpochSecond();
System.out.println(back); // 817876800
}
}Executado com OpenJDK 25.0.2 em 26 de outubro de 2026: imprime o que os comentários mostram.
var t = DateTimeOffset.FromUnixTimeSeconds(817876800); Console.WriteLine(t.ToString("o")); // 1995-12-02T04:00:00.0000000+00:00 var back = new DateTimeOffset(1995, 12, 2, 4, 0, 0, TimeSpan.Zero).ToUnixTimeSeconds(); Console.WriteLine(back); // 817876800
Executado com .NET 10.0.103 em 26 de outubro de 2026: imprime o que os comentários mostram.
package main import ( "fmt" "time" ) func main() { t := time.Unix(817876800, 0).UTC() fmt.Println(t.Format(time.RFC3339)) // 1995-12-02T04:00:00Z back := time.Date(1995, 12, 2, 4, 0, 0, 0, time.UTC).Unix() fmt.Println(back) // 817876800 }
Executado com Go 1.25.5 em 26 de outubro de 2026: imprime o que os comentários mostram.
SET TIME ZONE 'UTC'; SELECT to_timestamp(817876800); -- 1995-12-02 04:00:00+00 SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '1995-12-02 04:00:00+00')::bigint; -- 817876800
Executado com PostgreSQL 16.10 em 26 de outubro de 2026: imprime o que os comentários mostram.
SET time_zone = '+00:00'; SELECT FROM_UNIXTIME(817876800); -- 1995-12-02 04:00:00 SELECT UNIX_TIMESTAMP('1995-12-02 04:00:00'); -- 817876800
Executado com MySQL 9.5.0 em 26 de outubro de 2026: imprime o que os comentários mostram.
# macOS and the BSDs: -r takes seconds date -u -r 817876800 '+%F %T' # 1995-12-02 04:00:00 date -u -j -f '%F %T' '1995-12-02 04:00:00' +%s # 817876800 # Linux (GNU coreutils): -d @seconds; GNU's -r reads a file's date date -u -d @817876800 '+%F %T' # 1995-12-02 04:00:00 date -u -d '1995-12-02 04:00:00' +%s # 817876800
Executado com o comando date do macOS 26.6 e do GNU coreutils 9.12 em 26 de outubro de 2026: imprime o que os comentários mostram.
Tempo epoch: perguntas e respostas
O que é o tempo epoch?
Como converter epoch para data?
new Date(817876800 * 1000) em JavaScript.Qual é o tempo epoch atual?
date +%s o mostra em segundos.Um timestamp Unix está em segundos ou em milissegundos?
Por que o tempo Unix começa em 1970?
O tempo Unix é o mesmo que o UTC?
O que é o problema do ano 2038?
TIMESTAMP do MySQL, por exemplo, ainda termina nesse segundo.Dá para converter uma data antes de 1970?
TIMESTAMP do MySQL não os aceita, mas a maioria das linguagens e dos bancos de dados os lê como datas antes de 1970.Como converter um Windows FILETIME para data?
Como converter o serial de uma data do Excel em timestamp?
O conversor lida com fusos horários e horário de verão?
Meu timestamp é enviado para algum lugar?
Sentiu falta de algo?Sugira um recurso ou uma nova ferramenta
Ferramentas relacionadas
Gerador de UUID
Gere UUID v4, v7, v1, v5 e v3 ou GUIDs em massa, em qualquer formato, e decodifique a versão e o timestamp de um UUID
Decodificar e Codificar Base64
Decodifique e codifique Base64: texto (UTF-8, seguro para URL), imagens, PDFs e qualquer arquivo em Base64 ou data URI
Tradutor de Texto para Binário
Traduza texto para binário e binário para texto: detecção automática, hex, decimal e octal
Calculadora de Sub-rede
Rede, broadcast, hosts utilizáveis e máscaras de qualquer bloco IPv4 ou IPv6, com VLSM, divisões e sub-redes na nuvem