Entendiendo los timestamps Unix: Guía completa para desarrolladores

2026-05-20 · Development

¿Qué es un timestamp Unix?

Un timestamp Unix es una forma de rastrear el tiempo como un total acumulado de segundos. Cuenta el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC, un punto de referencia conocido como la "Época Unix".

Por ejemplo, el timestamp Unix 1719000000 representa un momento específico en el tiempo: 22 de junio de 2024 a aproximadamente las 00:00 UTC. Cada segundo, este número aumenta en uno.

¿Por qué usar timestamps Unix?

Los timestamps Unix son omnipresentes en el desarrollo de software por varias razones:

  • Independencia de zona horaria: Un timestamp representa el mismo instante en todo el mundo. No hay ambigüedad sobre si está en EST, PST o JST, siempre se basa en UTC.
  • Fácil comparación: Comparar dos timestamps es una simple comparación numérica. Si el timestamp A es mayor que el timestamp B, el evento A ocurrió después del evento B.
  • Almacenamiento eficiente: Almacenar un entero de 10 dígitos es mucho más eficiente en espacio que almacenar una cadena de fecha formateada como "2024-06-22T00:00:00Z".
  • Operaciones matemáticas: Sumar 86.400 segundos a un timestamp te da exactamente 24 horas después. No necesitas preocuparte por los límites de mes o los años bisiestos.

Segundos vs. milisegundos

Los timestamps Unix vienen en dos formatos comunes:

  • Segundos (10 dígitos): El formato original de timestamp Unix. Ejemplo: 1719000000
  • Milisegundos (13 dígitos): Usado por JavaScript y muchas APIs modernas para mayor precisión. Ejemplo: 1719000000000

Una fuente común de errores es mezclar estos dos formatos. Si pasas un timestamp en milisegundos a una función que espera segundos, la fecha será incorrecta por completo (aproximadamente 50.000 años en el futuro).

Trabajar con timestamps en diferentes lenguajes

JavaScript

const now = Date.now(); // milisegundos
const seconds = Math.floor(Date.now() / 1000);
const date = new Date(seconds * 1000);

Python

import time
seconds = int(time.time())
from datetime import datetime
dt = datetime.fromtimestamp(seconds)

PHP

$timestamp = time(); // segundos
$date = date('Y-m-d H:i:s', $timestamp);

MySQL

SELECT UNIX_TIMESTAMP(); -- timestamp actual
SELECT FROM_UNIXTIME(1719000000); -- convertir a fecha

Errores comunes

  • El problema del año 2038: Los enteros con signo de 32 bits se desbordarán el 19 de enero de 2038. Los sistemas que usan timestamps de 32 bits necesitarán migrar a enteros de 64 bits.
  • Segundos bisiestos: Los timestamps Unix no tienen en cuenta los segundos bisiestos. La mayoría de los sistemas simplemente los ignoran, lo que puede causar ligeras discrepancias con el tiempo atómico.
  • Visualización de zona horaria: Recuerda siempre que un timestamp Unix está en UTC. Mostrarlo a los usuarios requiere conversión a su zona horaria local.

Convertidor de timestamps de TryQuickToolBox

Nuestra herramienta gratuita convierte entre timestamps Unix (segundos y milisegundos), fechas ISO 8601, horas UTC y horas locales. La detección automática significa que puedes pegar cualquier formato y obtener resultados instantáneos. Haz clic en cualquier resultado para copiarlo al portapapeles.

Convertir timestamps ahora →