Entendiendo los timestamps Unix: Guía completa para desarrolladores
¿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.