Fragmentos de código de timestamp Unix

Código listo para usar para trabajar con timestamps Unix en 9 lenguajes de programación y bases de datos. Cubre obtener el timestamp actual, convertirlo a una fecha y formatear la salida.

Sobre estos ejemplos de código

Todos los ejemplos usan el valor 1700000000 como timestamp Unix de muestra en segundos, que corresponde al 15 de noviembre de 2023 06:13:20 UTC. Sustitúyelo por tu propio timestamp. Los ejemplos que muestran milisegundos usan 1700000000000 (el mismo instante × 1000).

Segundos vs milisegundos por lenguaje

El error más común es confundir segundos y milisegundos. Usa esta referencia rápida:

  • Milisegundos (× 1000): JavaScript Date.now(), Java System.currentTimeMillis(), C# DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
  • Segundos (÷ 1000 para comparar con 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 con parte fraccionaria

Cómo usar estos snippets con seguridad

Cada snippet es deliberadamente pequeño para copiarlo en una consola, un script de migración, una prueba o un manejador de API. Antes de usar un valor en producción, comprueba la unidad esperada en el punto donde el timestamp sale de tu código. Muchos errores ocurren cuando un servicio envía milisegundos y otro guarda segundos sin convertir.

  • En código de navegador y frontend, espera milisegundos salvo que la documentación de la API diga lo contrario
  • En código de backend, logs y herramientas de shell, lo habitual son segundos Unix
  • Para filtros de base de datos, mantén la unidad coherente en todas las filas e índices
  • Para salida con formato, prefiere UTC o una zona horaria IANA explícita en vez del valor por defecto del servidor

Elegir una fuente de verdad

Cuando varios servicios tocan la misma hora de un evento, elige una representación como fuente de verdad y convierte en los bordes. Por ejemplo, un backend puede guardar segundos Unix, un frontend puede multiplicar por 1000 para Date y un informe puede formatear el mismo instante como UTC o una zona horaria de negocio.