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.