La idea en una frase
Una marca de tiempo Unix cuenta segundos (a veces milisegundos) transcurridos desde una época acordada: 1970-01-01T00:00:00Z—medianoche UTC del 1 de enero de 1970—excluyendo segundos intercalares en la definición POSIX habitual. Ese entero único guarda un instante sin etiqueta de zona horaria.
Convierta un valor numérico en fecha legible con la herramienta de marca Unix a fecha.
Por qué a los ingenieros les gustan los segundos de época
Las fechas civiles necesitan calendarios, zonas y horario de verano. Eventos instantáneos—«este pedido se pagó», «este certificado caduca», «esta línea de log se escribió»—son más fáciles como un conteo monótono desde un origen fijo. El tiempo Unix viaja bien entre lenguajes, bases de datos y APIs. Ordenar marcas es ordenar enteros; las diferencias son restas.
El coste es la legibilidad humana: 1710000000 dice poco hasta convertirlo. Herramientas y formateadores de biblioteca cierran ese hueco.
Segundos frente a milisegundos frente a nanosegundos
Las convenciones difieren:
| Unidad | Uso típico | Longitud ejemplo (años 2020) |
|---|---|---|
| Segundos | POSIX, muchas APIs | 10 dígitos |
| Milisegundos | JavaScript Date, algunas BD | 13 dígitos |
| Micro/nano | Métricas de alta resolución | enteros más largos |
Pasar milisegundos a una API que espera segundos produce fechas lejanas. Pasar segundos a una API de milisegundos cae cerca de 1970. Al integrar, revise la documentación y pruebe con un instante conocido.
Date.now() de JavaScript devuelve milisegundos. Muchos frameworks backend usan segundos por defecto. Sea explícito en nombres JSON (createdAtSeconds) cuando pueda.
UTC y visualización local
La marca en sí es UTC. Mostrarla en Berlín o Tokio aplica una conversión de zona para humanos; el entero almacenado no cambia. Guarde instantes UTC y localice en los bordes—UI, correos, informes.
Marcas negativas y futuros lejanos
Las marcas anteriores a 1970 son negativas en sistemas que las admiten. Fechas muy lejanas pueden desbordar enteros con signo de 32 bits: el clásico problema del año 2038 para time_t en plataformas de 32 bits. El time_t moderno de 64 bits aleja el desbordamiento a resolución de segundos. Prefiera tipos de 64 bits en sistemas nuevos.
Segundos intercalares (nivel de conciencia)
UTC inserta a veces segundos intercalares. El tiempo Unix POSIX suele ignorarlos, tratando cada día como 86 400 segundos. Para aplicaciones empresariales cotidianas basta. Para astronomía, telecomunicaciones o sellado legal al segundo a través de saltos, estudie la escala de su industria (UTC, TAI, tiempo GPS) y el soporte de bibliotecas.
ISO 8601 junto al tiempo Unix
Las APIs suelen aceptar ambos:
17100000002024-03-09T16:00:00Z
Cadenas ISO 8601 con Z u offset numérico comunican el mismo instante si se parsean bien. El tiempo Unix es compacto; las cadenas ISO se buscan fácilmente en logs. Muchos sistemas guardan enteros y emiten ISO en JSON.
Flujo de conversión
- Identificar la unidad (s/ms).
- Interpretar el número como época UTC.
- Formatear con zona explícita para mostrar.
- Ida y vuelta: formatear y parsear, o volver a época, para confirmar acuerdo.
Convertir a mano sin biblioteca falla cerca de longitudes de mes y años bisiestos—use bibliotecas probadas en producción.
Bases de datos e indexación
Guarde enteros de época o tipos nativos de marca que normalicen a UTC. Evite hora civil local sin zona si quiere un instante. Indexar épocas enteras es directo; documente la unidad en comentarios de esquema.
Para «fechas de negocio» como días de factura, un tipo fecha sin hora puede ser mejor que una época a medianoche—política y jurisdicción definen qué significa «el día».
Logging y observabilidad
Los procesadores de logs aman el tiempo Unix. Correlacione trazas entre servicios en el mismo dominio de reloj cuando sea posible. El desfase de reloj entre hosts sigue existiendo—NTP ayuda—tolere negativos pequeños en duraciones y prefiera marcas generadas en servidor para auditorías autoritativas.
Errores frecuentes
- Desajuste de unidad (segundos vs milisegundos).
- Tratar la época como local al formatear sin
Z. - Matemática sobre cadenas de fechas en lugar de instantes.
- Excel convierte marcas con épocas incorrectas (el día cero de Excel difiere).
- Desbordamiento de 32 bits en sistemas embebidos o heredados.
Ejemplo didáctico
Tome una marca, conviértala a UTC y luego a dos zonas civiles. Confirme que ambas cadenas civiles apuntan al mismo instante. Ese ejercicio construye intuición mejor que memorizar fórmulas.
Use from-unix-timestamp-to-date para inspeccionar valores de APIs o volcados de base de datos (muestras no sensibles).
Conceptos relacionados
- Los relojes monótonos miden tiempo transcurrido y no deben retroceder; no son marcas Unix y no deben persistirse como hora de pared.
- Las expresiones cron describen horarios civiles, no épocas.
- Los campos
notAfterde certificados son instantes—compárelos en UTC.
Resumen
Las marcas Unix codifican instantes como conteos desde 1970-01-01 UTC. Simplifican almacenamiento y ordenación y dejan el formato humano en los bordes. Conozca sus unidades, use tipos de 64 bits, muestre con zonas explícitas y convierta con herramientas fiables cuando necesite leer un número crudo como fecha de calendario.