Timestamps de Unix: las cuatro trampas que rompen tus fechas
Un timestamp de Unix es solo un conteo de segundos desde 1970-01-01 UTC. Simple — y aun así causa más bugs de fechas que cualquier otro formato. Cuatro trampas explican la mayoría.
1. Segundos vs. milisegundos
Date.now() en JavaScript devuelve milisegundos; el tiempo Unix clásico y la mayoría de logs usan segundos. Un número de 10 dígitos son segundos, de 13 son milisegundos. Mezclarlos convierte 2026 en el año 53.000 — o en 1970.
2. UTC vs. hora local
El timestamp no tiene zona horaria: es el mismo instante en todas partes. Los bugs aparecen cuando el código convierte con la zona del servidor en lugar de la del usuario, o cuando una cadena como 2026-09-01 08:00 se parsea sin decir a qué zona pertenece.
3. Saltos de horario de verano
Las zonas con horario de verano saltan una hora dos veces al año. Una reunión guardada como 09:00 local en verano y en invierno son dos instantes UTC distintos; guardar UTC y convertir solo al mostrar elimina toda esa clase de bugs.
4. Parsing según el locale
Cadenas como 03/04/2026 significan 4 de marzo en un país y 3 de abril en otro. Parsear fechas desde texto necesita un formato explícito — nunca adivinar.
Las reglas prácticas: guardar UTC, convertir solo al mostrar, y etiquetar siempre los formatos. Para inspeccionar un timestamp o una fecha, conviértelo con la herramienta de timestamps o compara relojes mundiales — ambos corren en tu navegador.