RUNWEBTOOLS
Español
Web y desarrollo

Trabajar con marcas de tiempo Unix: la hora epoch sin complicaciones

Actualizado 2026-07-06

Abre una respuesta de API o una fila de base de datos y a menudo encontrarás una fecha guardada como un número simple, como 1751760000. Eso es una marca de tiempo Unix, y así es como una enorme cantidad de software registra el tiempo. Esta guía explica qué significa ese número, por qué las computadoras cuentan el tiempo así, y los tropiezos — segundos vs. milisegundos, zonas horarias y el problema del año 2038.

Qué es una marca de tiempo Unix

Una marca de tiempo Unix es el número de segundos transcurridos desde un momento fijo llamado epoch: las 00:00:00 UTC del 1 de enero de 1970. Así que 0 es el epoch mismo, 60 es un minuto después, y 1751760000 es un momento de 2025. Es solo un conteo continuo de segundos.

¿Por qué contar segundos desde 1970?

Representar el tiempo como un solo entero es enormemente cómodo para las computadoras. Comparar dos momentos se vuelve comparar dos números; hallar el intervalo entre ellos es una resta; ordenar eventos es solo ordenar enteros — todo sin calendarios, meses, años bisiestos ni zonas horarias que razonar. El punto de partida de 1970 es una elección histórica de los primeros días del sistema operativo Unix que simplemente se quedó.

La trampa de segundos vs. milisegundos

Este es el error que casi todos cometen al menos una vez. Las marcas de tiempo Unix son clásicamente en segundos, pero muchos sistemas — JavaScript en particular — usan milisegundos (milésimas de segundo). Los dos difieren en un factor de 1000:

segundos:      1751760000
milisegundos:  1751760000000

Mete un valor en segundos en algo que espera milisegundos y tu fecha aterriza en 1970; haz lo contrario y aterriza decenas de miles de años en el futuro. La comprobación rápida: una marca de tiempo actual en segundos tiene 10 dígitos; en milisegundos, 13. Cuando una fecha convertida se ve absurda, casi siempre es por esto.

Zonas horarias y UTC

Una fortaleza clave de las marcas de tiempo Unix: el número en sí está siempre en UTC. Representa un instante exacto, el mismo para todos en la Tierra. La marca de tiempo 1751760000 es un único momento; que se muestre como las 4 PM en Londres o las 11 AM en Nueva York es puramente una elección de visualización aplicada al final. Guardar el tiempo como marca de tiempo UTC y convertirlo a hora local solo al mostrarlo evita toda una categoría de errores de zona horaria. Para ver el mismo instante en distintas regiones, un conversor de zonas horarias es la herramienta para ello.

Convertir a y desde fechas humanas

Constantemente necesitarás ir en ambos sentidos — convertir una marca de tiempo en una fecha legible para depurar un registro, o una fecha en una marca de tiempo para consultar una API. Nuestro conversor de marca de tiempo Unix hace ambos al instante y muestra el resultado en tu hora local y en UTC. Para medir en cambio el intervalo entre dos fechas, la calculadora de diferencia de fechas lo hace directamente.

El problema del año 2038

Los sistemas más antiguos guardan la marca de tiempo como un entero de 32 bits con signo, que solo puede contar hasta 2.147.483.647. Ese techo se alcanza a las 03:14:07 UTC del 19 de enero de 2038 — un segundo después el contador se desborda y da la vuelta a un número negativo, lanzando las fechas de vuelta a 1901. Es la misma clase de error que el Y2K. La solución ya está muy extendida: usar un entero de 64 bits, que empuja el límite unos 292 000 millones de años hacia el futuro. La mayoría del software moderno está bien, pero conviene saberlo al tocar sistemas heredados.

Referencia rápida

  • Una marca de tiempo Unix = segundos desde el 1 de enero de 1970 UTC.
  • 10 dígitos = segundos; 13 dígitos = milisegundos.
  • El valor siempre es UTC — aplica zonas horarias solo al mostrar.
  • El almacenamiento de 32 bits se rompe en 2038; el de 64 bits no.

Más de Web y desarrollo

Ver todas las guías de Web y desarrollo →

Herramientas mencionadas en esta guía