Convertidor de Marca de Tiempo Unix
Convierte entre marcas de tiempo Unix y fechas legibles. Soporta precisión de segundos y milisegundos.
Cómo Usar
- Ingresa una marca de tiempo Unix para convertirla a una fecha legible
- O elige una fecha y hora para convertirla a una marca de tiempo Unix
- Alterna entre el formato de segundos y milisegundos
Preguntas Frecuentes
-
¿Qué es una marca de tiempo Unix?
Una marca de tiempo Unix es el número de segundos transcurridos desde el 1 de enero de 1970 (UTC), también conocido como la época Unix. Se usa ampliamente en programación y bases de datos.
-
¿Cuál es la diferencia entre marcas de tiempo en segundos y milisegundos?
Las marcas de tiempo Unix en segundos tienen 10 dígitos (p. ej., 1700000000), mientras que las de milisegundos tienen 13 dígitos (p. ej., 1700000000000). JavaScript usa milisegundos, mientras que la mayoría de los sistemas Unix usan segundos.
-
¿Qué es el problema Y2K38?
Los sistemas de 32 bits almacenan las marcas de tiempo como un entero de 32 bits con signo, que desbordará el 19 de enero de 2038. Los sistemas modernos de 64 bits no tienen esta limitación.
-
¿Esta herramienta tiene en cuenta las zonas horarias?
La herramienta muestra las horas tanto en UTC como en tu zona horaria local para facilitar la comparación.
El concepto de marca de tiempo Unix
Una marca de tiempo Unix (también llamada Unix time, POSIX time o epoch time) es simplemente un número entero: la cantidad de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970. Esa fecha, conocida como la época Unix (Unix epoch), fue elegida de forma arbitraria por los desarrolladores originales del sistema operativo Unix a finales de los años 60.
La elegancia de este sistema es su universalidad: independientemente del país, la zona horaria o el idioma, 1700000000 siempre representa exactamente el mismo instante en el tiempo para cualquier sistema del mundo.
Segundos vs. milisegundos: la distinción clave
Una fuente frecuente de confusión y bugs es que diferentes entornos usan diferentes unidades:
- Segundos (10 dígitos, ej.
1700000000): es la convención estándar de Unix/Linux, bases de datos como PostgreSQL y la mayoría de los sistemas backend. - Milisegundos (13 dígitos, ej.
1700000000000): es la convención de JavaScript (Date.now(),new Date().getTime()), Java y muchos sistemas frontend modernos.
Confundir estos dos formatos produce errores clásicos: fechas en el año 53000 o tiempos que parecen estar en 1970. Si ves una fecha absurda al convertir un timestamp, lo primero que debes verificar es si estás usando las unidades correctas.
Por qué las marcas de tiempo son mejores que las fechas en texto
Al almacenar fechas en bases de datos o transmitirlas entre sistemas, usar timestamps Unix tiene ventajas claras:
- Sin ambigüedad de zona horaria:
1700000000es el mismo instante en cualquier parte del mundo. Una cadena como"2023-11-14 22:13:20"es ambigua sin información de zona horaria. - Aritmética simple: calcular la diferencia entre dos fechas es simplemente una resta de enteros.
- Ordenamiento eficiente: los timestamps se pueden ordenar y comparar como cualquier número.
- Almacenamiento compacto: un entero de 64 bits ocupa 8 bytes; una cadena de fecha puede ocupar 20 bytes o más.
El problema Y2K38
Los sistemas de 32 bits almacenan el timestamp Unix como un entero con signo de 32 bits, cuyo valor máximo es 2,147,483,647. Este número corresponde al 19 de enero de 2038 a las 03:14:07 UTC. Tras ese momento, el contador desbordará y volverá a un valor negativo, provocando que los sistemas interpreten la fecha como el 13 de diciembre de 1901.
Este problema es análogo al Y2K del año 2000, pero para sistemas de 32 bits. Aunque la mayoría de los sistemas modernos usan enteros de 64 bits (que pueden representar fechas hasta el año 292 millones), aún existen sistemas embebidos, bases de datos antiguas y código heredado que usan 32 bits.
Formatos de fecha relacionados
- ISO 8601:
2023-11-14T22:13:20Z— el estándar internacional para representar fechas en texto, recomendado para APIs y logs. - RFC 2822:
Tue, 14 Nov 2023 22:13:20 +0000— usado en cabeceras de correo electrónico y HTTP.