Trechos de código de timestamp Unix
Código pronto para uso para trabalhar com timestamps Unix em 9 linguagens de programação e bancos de dados. Cobre obter o timestamp atual, convertê-lo em data e formatar a saída.
Sobre estes exemplos de código
Todos os exemplos usam o valor 1700000000 como timestamp Unix de amostra em segundos, que corresponde a 15 de novembro de 2023 06:13:20 UTC. Substitua pelo seu próprio timestamp. Os exemplos que mostram milissegundos usam 1700000000000 (o mesmo instante × 1000).
Segundos vs milissegundos por linguagem
O erro mais comum é confundir segundos e milissegundos. Use esta referência rápida:
- Milissegundos (× 1000): JavaScript Date.now(), Java System.currentTimeMillis(), C# DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
- Segundos (÷ 1000 para comparar com JS): Python time.time(), PHP time(), Go time.Now().Unix(), Ruby Time.now.to_i, Rust SystemTime::now().as_secs()
- SQL: MySQL UNIX_TIMESTAMP() → segundos; PostgreSQL EXTRACT(EPOCH) → segundos com parte fracionária
Como usar estes snippets com segurança
Cada snippet é propositalmente pequeno para ser copiado em um console, script de migração, teste ou handler de API. Antes de usar um valor em produção, verifique a unidade esperada no ponto em que o timestamp sai do seu código. Muitos bugs ocorrem quando um serviço envia milissegundos e outro armazena segundos sem converter.
- Em código de navegador e frontend, espere milissegundos a menos que a documentação da API diga o contrário
- Em código de backend, logs e ferramentas de shell, segundos Unix costumam ser o padrão
- Para filtros de banco de dados, mantenha a unidade consistente em todas as linhas e índices
- Para saída formatada, prefira UTC ou um fuso IANA explícito em vez do padrão do servidor
Escolher uma fonte de verdade
Quando vários serviços tocam a mesma hora de um evento, escolha uma representação como fonte de verdade e converta nas bordas. Por exemplo, um backend pode armazenar segundos Unix, um frontend pode multiplicar por 1000 para Date, e um relatório pode formatar o mesmo instante como UTC ou um fuso de negócio.