Convertir un timestamp Unix en fecha, y una fecha en timestamp
Publicado el · Actualizado el 3 min de lectura
Un timestamp Unix es un número que cuenta el tiempo transcurrido desde el 1 de enero de 1970 a medianoche, en tiempo universal. Se encuentra en bases de datos, registros de programas e interfaces de sitios. Dos preguntas deciden la fecha obtenida: la unidad del número y el huso horario en el que se lee el resultado.
Un valor de referencia
Convertir timestamp Unix da tres lecturas de un mismo instante. Para 1700000000, con un navegador configurado en la hora de París:
| Lectura | Resultado |
|---|---|
| Fecha UTC | Tue, 14 Nov 2023 22:13:20 GMT |
| Fecha local | 14 de noviembre de 2023, 23:13:20 UTC+1 |
| ISO | 2023-11-14T22:13:20.000Z |
La hora local sigue el huso horario del navegador: una hora más en París en invierno. El mismo timestamp es un único instante, leído en dos husos horarios.
La unidad se reconoce por el número de cifras
El ajuste por defecto reconoce la unidad según la longitud del número. Los tres valores siguientes designan el mismo instante, salvo la precisión.
| Número | Cifras | Unidad reconocida | Instante obtenido |
|---|---|---|---|
| 1700000000 | 10 | Segundos | 14 nov. 2023, 22:13:20 UTC |
| 1700000000000 | 13 | Milisegundos | 14 nov. 2023, 22:13:20 UTC |
| 1700000000123456 | 16 | Microsegundos | 14 nov. 2023, 22:13:20,123 UTC |
La regla: hasta 11 cifras, segundos; de 12 a 14, milisegundos; 15 y 16, microsegundos. El ajuste «milisegundos» fuerza esa unidad.
La trampa de la regla
Como la unidad se deduce de la longitud, un valor ambiguo se lee de una sola manera: 10000000000 (11 cifras) da el 20 de noviembre de 2286 y 100000000000 (12 cifras) el 3 de marzo de 1973. Un timestamp en milisegundos anterior a marzo de 1973 tiene 11 cifras o menos y se leería como segundos: fuerce entonces el ajuste «milisegundos».
Los valores anteriores a 1970 y el límite de 2038
Un número negativo designa un instante anterior a 1970: −1 da el 31 de diciembre de 1969 a las 23:59:59 UTC y 0 el 1 de enero de 1970 a medianoche.
El número 2147483647 es el mayor que cabe en un entero con signo de 32 bits: da el 19 de enero de 2038 a las 03:14:07 UTC. El número siguiente, 2147483648, da las 03:14:08. La herramienta continúa sin límite, pero un sistema que guarda el tiempo en 32 bits no puede: es el «error del año 2038».
Convertir una fecha en timestamp
Introduzca una fecha en lugar de un número: la herramienta da el timestamp en segundos y en milisegundos.
| Entrada | Timestamp en segundos | Lectura |
|---|---|---|
| 2026-01-01 | 1767225600 | Medianoche en tiempo universal, sin huso horario indicado |
| 2026-01-01T10:30:00+01:00 | 1767259800 | 10:30 en París, es decir, 09:30 en tiempo universal |
| 2024-02-29 | 1709164800 | Año bisiesto aceptado |
Una fecha sin huso horario se lee en tiempo universal, no en hora local: la herramienta lo recuerda en el resultado. Una fecha que no existe, como el 30 de febrero de 2026, se rechaza con un mensaje.
Los errores habituales
- Leer milisegundos como segundos: la fecha cae a miles de años de distancia.
- Olvidar el huso horario: una fecha leída como local y enviada después como universal se desplaza una o varias horas.
- Escribir una fecha sin huso horario pensando en la hora local, cuando se leerá en tiempo universal.
Para contar los días entre dos fechas, consulte Contar los días entre dos fechas.
Para qué casos
Un registro de programa, una base de datos, una respuesta de un servicio en línea o un archivo exportado: el número se lee mal, la fecha se lee enseguida.
Comprobar una conversión
- Vuelva a leer la línea UTC, que no depende de su dispositivo.
- Compruebe la unidad anunciada en la primera línea del resultado.
- Vuelva a convertir la fecha obtenida: debe encontrar el número de partida.
Preguntas frecuentes
- ¿Qué es un timestamp Unix?
- El número de segundos transcurridos desde el 1 de enero de 1970 a medianoche, en tiempo universal.
- ¿Cómo saber si un número está en segundos o en milisegundos?
- La herramienta lo deduce del número de cifras: hasta 11 cifras, segundos; de 12 a 14, milisegundos; 15 y 16, microsegundos.
- ¿Qué pasa en 2038?
- El número 2147483647, el mayor entero con signo de 32 bits, corresponde al 19 de enero de 2038. Un sistema que guarda el tiempo en 32 bits no puede ir más lejos.
- ¿Qué huso horario se usa para una fecha sin huso horario?
- El tiempo universal, no la hora local. La herramienta lo recuerda en el resultado.
