El límite
Un entero con signo de 32 bits almacena de −2.147.483.648 a 2.147.483.647. Interpretado como segundos Unix, el límite positivo es 2038-01-19T03:14:07Z. Añadir un segundo desborda esa representación.
Quién debe comprobarlo
Los sistemas operativos antiguos, dispositivos integrados, columnas de bases de datos y protocolos binarios aún pueden usar segundos de 32 bits. Un timestamp de 64 bits o un tipo de fecha adecuado aleja el límite práctico, pero toda la cadena debe estar preparada.
Cómo probar
Pasa valores a ambos lados del límite por el analizador, almacenamiento, serialización de API, entorno cliente e informes. Un servidor moderno no protege automáticamente una columna antigua o un protocolo de dispositivo.
Otros límites
Comprueba también el intervalo de campos en milisegundos, los enteros seguros de JavaScript y las restricciones de APIs externas. Unidades y tipos diferentes alcanzan sus límites en fechas distintas.
Verificar el límite
| Segundos Unix | Fecha UTC |
|---|---|
2147483646 | 2038-01-19 03:14:06 |
2147483647 | 2038-01-19 03:14:07 |
2147483648 | 2038-01-19 03:14:08 |
El tercer valor es válido con una representación más amplia. Supera el límite de un entero de 32 bits con signo, no la definición del tiempo Unix. Puedes comprobarlo en el conversor seleccionando segundos.
El intervalo de ese tipo es de −2.147.483.648 a 2.147.483.647. Si un sistema antiguo desborda en lugar de rechazar el valor, el siguiente número puede convertirse en negativo y mostrar una fecha de 1901. El resultado concreto depende de la plataforma y del almacenamiento.
Revisar toda la cadena de datos
Comprueba la columna de la base de datos, el controlador, el contrato de la API, la serialización y el tipo de la aplicación. Ampliar una columna no elimina un cast a 32 bits en un cliente o dispositivo. Escribe y vuelve a leer valores a ambos lados del límite; compara el entero almacenado, no solo la fecha.
Utiliza un entero más amplio o un tipo de fecha compatible en toda la cadena. Un entero de 32 bits sin signo tiene otro límite posterior, pero no resuelve las fechas negativas ni todas las restricciones de los protocolos.
Separar los límites técnicos
El problema de 2038 afecta a segundos con signo de 32 bits. El límite de enteros exactos de JavaScript y el rango de fechas del navegador son problemas distintos. Los milisegundos, microsegundos y nanosegundos aumentan la magnitud del valor.
Consulta segundos y milisegundos. El conversor por lotes ayuda a revisar un archivo de migración, pero no inspecciona ni cambia los tipos de tu sistema.