La marca de tiempo Unix cuenta los segundos transcurridos desde el 1 de enero de 1970 a las 00:00 UTC. No sabe de husos horarios ni de horario de verano, y justo por eso se usa en bases de datos y en las API.
La confusión viene de la unidad: muchos sistemas cuentan segundos, pero JavaScript y bastantes API cuentan milisegundos. Una marca de trece cifras son milisegundos; una de diez, segundos.
El problema del año 2038
Si la marca se guarda como un entero con signo de 32 bits, el 19 de enero de 2038 a las 03:14:07 UTC se acaba: el segundo siguiente salta al año 1901. Afecta a sistemas empotrados antiguos, no al software moderno de 64 bits.
Su reflejo ya quedó atrás: el 9 de septiembre de 2001 la marca superó los mil millones y algunos sistemas que daban por hecho diez cifras tuvieron que ajustarse. Los dos casos son el mismo fallo: una suposición sobre el tamaño de un número.
Por qué no aparecen los segundos intercalares
La marca de tiempo Unix define cada día como exactamente 86 400 segundos. Un segundo intercalar no se cuenta: se salta o se repite. El cálculo se mantiene simple a cambio de pequeñas imprecisiones.
Para casi todo es la decisión correcta. Quien necesita contar segundos con exactitud, como en astronomía, usa TAI en lugar de UTC y lleva el desfase por separado.